docker mysql


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 #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column MySQL 5.7.5和up實現了對功能依賴的檢測。如果啟用了only_full_group_by SQL模式(在默認情況下是這樣),那么MySQL就會拒絕選擇列表、條件或順序列表引用的查詢,這些查詢將引用組中未命名的非聚合列,而不是在功能上依賴於它們。(在5.7.5之前,MySQL沒有檢測到功能依賴項,only_full_group_by在默認情況下是不啟用的。 解決方案1: set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'; set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'; 解決方案2(寫配置文件,重啟不失效。去除NO_ZERO_IN_DATE,NO_ZERO_DATE,解決時間戳的問題): 進入docker的MySQL容器,編輯/etc/mysql/mysql.conf.d/mysqld.cnf文件,在[mysqld]下添加如下: sql-mode='STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' 
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 設置表名參數名等忽略大小寫


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM