1. 程式人生 > 其它 >使用MySQL-Docker映象啟動MySQL

使用MySQL-Docker映象啟動MySQL

1. Docker安裝參考https://www.cnblogs.com/hujiapeng/p/5817535.html

2. 在伺服器本地建立MySQL配置檔案,基本配置如下,如放在檔案/root/mysql/conf/my.cnf中

[mysqld]
# 設定3306埠
port=3306
# mysql pid記錄檔案
pid-file = /var/run/mysqld/mysqld.pid
# socket配置
socket = /var/run/mysqld/mysqld.sock
# 設定mysql資料庫的資料的存放目錄
datadir=/var/lib/mysql
# 允許最大連線數
max_connections
=1000
# 允許連線失敗的次數。這是為了防止有人從該主機試圖攻擊資料庫系統
max_connect_errors
=100
# 服務端使用的字符集預設為UTF8
character
-set-server=utf8mb4
# 建立新表時將使用的預設儲存引擎
default
-storage-engine=INNODB
# 預設使用“mysql_native_password”外掛認證
default_authentication_plugin
=mysql_native_password
# 是否對sql語句大小寫敏感,1表示不敏感
lower_case_table_names
= 1
#MySQL連線閒置超過一定時間後(單位:秒)將會被強行關閉
#MySQL預設的wait_timeout 值為8個小時, interactive_timeout引數需要同時配置才能生效
interactive_timeout
= 1800
wait_timeout
= 1800
#Metadata Lock最大時長(秒), 一般用於控制 alter操作的最大時長sine mysql5.
6
#執行 DML操作時除了增加innodb事務鎖外還增加Metadata Lock,其他alter(DDL)session將阻塞
lock_wait_timeout
= 3600
#內部記憶體臨時表的最大值。
#比如大資料量的group by ,order by時可能用到臨時表,
#超過了這個值將寫入磁碟,系統IO壓力增大
tmp_table_size
= 64M
max_heap_table_size
= 64M
[mysql]
# 設定mysql客戶端預設字符集
default
-character-set=utf8mb4
[client]
# 設定mysql客戶端連線服務端時預設使用的埠
port
=3306
default
-character-set=utf8mb4

3. docker命令啟動MySQL映象,如果docker服務沒啟動,可以使用service docker start命令啟動。注意使用--privileged=true配置,讓docker有許可權操作物理機檔案

docker run --name mysql -p 3306:3306 --privileged=true -v /root/mysql/conf:/etc/mysql/conf.d -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:8.0

4. 進入Mysql docker內部

docker exec -it mysql /bin/bash

5. 啟動Mysql客戶端,連線Mysql。show databases;命令可以列出資料庫

 mysql -uroot -proot