1 拉取mysql鏡像,采用網易加速地址
docker pull hub.c.163.com/library/mysql:5.7
2 重命名鏡像名
docker tag hub.c.163.com/library/mysql:5.7 mysql:5.7
3 創建容器且安裝鏡像.啟動。
docker run --name mysql-main -p3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
-name:容器名稱mysql-main -p:將端口號映射到主機 最后設置密碼123456
4 通過命令進入mysql-main容器
docker exec -it mysql-main bash
5 然后進入MySQL。並設置遠程的授權等信息。
mysql -uroot -p
grant all privileges on *.* to root@"%" identified by "123456" with grant option; ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; flush privileges;
6 取消Mysql查詢大小寫的問題。
進入docker的MySQL容器,編輯/etc/mysql/mysql.conf.d/mysqld.cnf文件,在[mysqld]下添加如下:
[mysqld] lower_case_table_names=1
保存,退出容器;執行sudo docker restart MySQL ,重啟MySQL即可查看。
7 解決Mysql5.7的查詢兼容問題。此設置重啟失效。
如:Expression
8 解決Mysql5.7的密碼修改不兼容問題。
Mysql5.7更改密碼,以前的方式會報錯。代碼如下:
update mysql.user set password=password('root') where user='root' 提示ERROR 1054 (42S22): Unknown column 'password' in 'field list' 最新的更改密碼代碼是: update mysql.user set authentication_string=password('root') where user='root'
備注:
啟動docker中 MySQL的時候可以加參數。含義是:
--restart=always 跟隨docker啟動 --privileged=true 容器root用戶享有主機root用戶權限 -v 映射主機路徑到容器 -e MYSQL_ROOT_PASSWORD=root 設置root用戶密碼 -d 后台啟動 --lower_case_table_names=1 設置表名參數名等忽略大小寫