神速·搭建MySQL

一、Docker搭建MySQL

1. 獲取鏡像

docker pull mysql:5.7

2. 運行鏡像

2.1 不映射目錄

docker run -itd -p  主機端口:3306 -e MYSQL_ROOT_PASSWORD= 密碼  鏡像id

  • -p 3306:3306 即將容器的3306端口映射到主機的3306端口上
  • -e MYSQL_ROOT_PASSWORD=123456 設置用戶爲root,密碼爲123456

不映射目錄的情況下數據不能持久化保存,容器沒了就得跑路了

2.2 映射目錄

docker run -itd -p 主機端口:3306 -v 宿主機目錄:/var/lib/mysql -e MYSQL_ROOT_PASSWORD= 密碼  鏡像id
  • -v 宿主機目錄:容器目錄 將容器內的目錄文件映射到宿主機對應的目錄下

這樣就容器內的 /var/lib/mysql 目錄映射到了宿主機的D:/volume/mysql目錄上,容器沒了數據還在

2.3 設置UTF-8格式

docker run -itd -p 主機端口:3306 -e MYSQL_ROOT_PASSWORD=密碼 --mysql --character-set-server=utf8 --collation-server=utf8_general_ci  鏡像id
  • –character-set-server=utf8 : 設置字符集爲utf8

  • –collation-server=utf8_general_cli : 設置字符比較規則爲utf8_general_cli


3. 遠程連接

3.1 登錄MySQL

docker exec -it 容器id bash

mysql -u root -p

輸入剛纔設置的密碼

3.2 設置允許遠程登錄

grant all privileges on *.* to 'root'@'%' identified by 'MYSQL密碼';

flush privileges;

3.4 測試

新建一個數據庫Test

如果設置了目錄映射的話就能在宿主機中看見了

4.常見問題

4.1 中文亂碼問題

進入容器內,執行

echo "character-set-server=utf8" >> /etc/mysql/mysql.conf.d/mysqld.cnf

service mysql restart

4.2 降低容器佔用內存

進入容器內,執行

vim /etc/mysql/mysql.conf.d/mysqld.cnf

在該文件的最後追加

performance_schema_max_table_instances=400

table_definition_cache=400

table_open_cache=256

重啓容器或者重啓MySQL服務即可

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章