1. 程式人生 > 其它 >容器方式執行Mysql8.0.26的方法

容器方式執行Mysql8.0.26的方法

容器化執行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. 客戶端登入驗證.