1. mysql イメージをプルします (デフォルトでは最新のイメージがプルされます) 8.0.22
docker pull mysql:8.0.22
2. ホスト マシン上に永続的な mysql データと mysql.cnf を作成します (ディレクトリのカスタマイズ。個人の好みに応じて、my.cnf には何も書き込む必要はありません)。
mkdir /web/mysql-data/cnf
mkdir /web/mysql-data/data
vi /web/mysql-data/cnf/mysql.cnf
3. 操作権限を追加する
chmod 777 /usr/local/mysqlData/test/data
备注:挂载时权限验证(操作权限)
4. ミラー イメージを実行し、初期パスワード、ローカル マシンと Docker ポート間のマッピングを設定し、ローカル データ ディスクをマウントします ( msyql サービスを開始します)。
docker run -itd -p 3306:3306 --name mysql -v /web/mysql-data/cnf -v /web/mysql-data/data:/var/lib/mysql -v /web/mysql-data/mysql-files:/var/lib/mysql-files/ -e MYSQL_ROOT_PASSWORD=root mysql:8.0.22
5. test_mysql コンテナに入ります
6. Mysql5.6 以降のバージョンではパスワード アルゴリズムが変更されているため、Navicat 接続の使用を容易にするためにここでパスワード アルゴリズムを更新する必要があります (ここではパスワードを「123456」に変更していることに注意してください)
mysql> GRANT オプションを使用して *.* のすべての権限を root@'%' に付与します。
クエリ OK、影響を受ける行は 0 (0.01 秒)
mysql> ALTER user 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
クエリ OK、影響を受ける行は 0 (0.11 秒)
mysql> ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
クエリ OK、影響を受ける行は 0 (0.11 秒)
mysql> FLUSH PRIVILEGES;
クエリは OK、影響を受ける行は 0 (0.01 秒)
7. 図に示すように、navicat を使用して mysql に接続します。