يمكنك تمرير متغير بيئة إضافية عند بدء حاوية الخلية MYSQL_ROOT_HOST=<ip> هذا سيخلق مستخدم الجذر مع إذن للدخول من عنوان إب معين. في حال كنت تريد السماح بتسجيل الدخول من أي إب يمكنك تحديد MYSQL_ROOT_HOST=%.
هذا وسوف تعمل فقط للحاويات التي تم إنشاؤها حديثا.
عندما الغزل حاوية جديدة:
docker run --name some-mysql -e MYSQL_ROOT_HOST=% -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:latest
في ملف الإنشاء سيكون:
version: '2'services: ### Mysql container mysql: image: mysql:latest ports: - "3306:3306" volumes: - /var/lib/mysql:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: test_db MYSQL_USER: test MYSQL_PASSWORD: test_pass MYSQL_ROOT_HOST: '%' # needs to be enclosed with quotes
عند الاتصال بخادم الخلية ، فإنه يتحقق من ذلك GRANT الجدول (الجدول " المستخدم "في" ميسكل| قاعدة البيانات على خادم ميسكل) ضد عنوان إب من الجهاز العميل ميسكل الاتصال. إذا كان هناك لا توجد إدخالات مطابقة في عمود "المضيف" في جدول "المستخدم" في قاعدة بيانات " ميسكل, سوف الخلية إغلاق الاتصال على الفور مع ERROR 1130.
تحقق مما إذا كان العميل قادرا على الوصول إلى المنفذ 3306 (منفذ ميسكل) على خادم قاعدة البيانات:
telnet 172.21.0.2 3306Trying ::1...Connected to 172.21.0.2.Escape character is '^]'.
يجب عليك تسجيل الدخول إلى خادم الخلية ، وتشغيل "الخلية" للتحقق من جدول المنح:
"الجذر" هو أذن للاتصال من عدة عناوين إب ، ولكن ليس من العميل إب 172.21.0.1. لذلك ، فقط إضافة منح الوصول من هذا الملكية الفكرية:
mysql> GRANT ALL PRIVILEGES ON root.* TO 'your_db'@'172.21.0.1' IDENTIFIED BY 'Password';Query OK, 0 rows affected (0.00 sec)mysql> FLUSH PRIVILEGES;Query OK, 0 rows affected (0.00 sec)