容器化運行Mysql8.0.26測試環境的方法
1. 前言
- 之前為了好處理,都是二進制包的方式安裝mysql,但是有時候需要下載和安裝也比較費時費力, 今天中午在弄Oracle RAC時想着以后能夠容器化方式運行Mysql數據庫. 所以簡單記錄一下.
2. 拉取鏡像和啟動
1. 拉取鏡像
docker pull mysql:8.0.26
2. 創建目錄文件等.
mkdir -p /mysql/cnf /mysql/data /mysql/log /mysql/mysql-files
chmod 777 /mysql/* -R
chmod 0644 /mysql/cnf -R
# 注意 配置文件文件的權限要單獨處理, 不然會有錯誤提示.
添加一個配置文件, 使之符合公司的產品需求
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
max_allowed_packet = 1G
innodb_log_file_size = 30M
innodb_log_buffer_size = 256M
innodb_file_per_table = 1
innodb_buffer_pool_size=1G
#innodb_file_format=barracuda
max_connections=2000
lower-case-table-names=1
innodb_strict_mode = 0
character_set_server=utf8
secure_file_priv =
transaction-isolation = READ-COMMITTED
default_authentication_plugin=mysql_native_password
default-time-zone = '+08:00'
#skip-grant-tables
[mysql]
prompt="\\u@\\h : \\d \\r:\\m:\\s>"
default-character-set=utf8
將文件保存為: /mysql/conf/my.conf 並且設置 0644 的文件權限.
3. 啟動鏡像 命令如下:
docker run --name mysql -p 3307:3306 -v /mysql/cnf/my.cnf:/etc/mysql/my.cnf -v /mysql/data:/var/lib/mysql -v /mysql/log:/logs -v /mysql/mysql-files:/var/lib/mysql-files -e MYSQL_ROOT_PASSWORD=貌似沒用 --restart=always -d mysql:8.0.26
# 注意我改了參數, 端口號等 並且數據庫自動啟動相關.
4. 登錄鏡像創建可以遠程訪問的用戶權限.
docker exec -it mysql bash
輸入
mysql -uroot
登錄數據庫
創建一個可以遠程訪問的有用戶, 注意我這邊使用了native password 所以密碼創建方式是不一樣的
create user 'root'@'%' identified WITH mysql_native_password by 'Tyourpasswords';
flush privileges ;
3. 客戶端登錄驗證.
