背景
阿里云基礎版 RDS 最近因為大數(shù)據(jù)量查詢經(jīng)常宕機(阿里云工單回復是 OOM似将,讓升級高可用版本~)譬重,導致日常辦公軟件(Crowd勃蜘,Jira,Confluence等)無法使用骇径,所以在 ECS 搭建本地 Mysql躯肌。
驗證環(huán)境
- Centos 7.7
- Docker 1.13.1
拉取鏡像
# 搜索 Mysql 鏡像
$ docker search mysql
# 下載 Mysql 5.7 鏡像
$ docker pull mysql:5.7
# 查看下載鏡像
$ docker images
運行容器
# 運行 Mysql 容器
$ docker run -d 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=daodaotest mysql:5.7
# 運行 Mysql 容器,映射目錄破衔,設置必須 Mysql 參數(shù)
$ docker run -d -p 3306:3306 --name mysql \
-v /home/mysql/mysql/conf:/etc/mysql \
-v /home/mysql/mysql/logs:/var/log/mysql \
-v /home/mysql/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=daodaotest \
mysql:5.7 \
--lower_case_table_names=1 \
--max-allowed-packet=1073741824 \
--character_set_server=utf8 \
--innodb_log_file_size=256m
Docker 參數(shù)說明:
-
-d
:后臺運行容器羡榴,并返回容器 ID -
-p
:指定端口映射,格式為:主機(宿主)端口:容器端口 -
--name
:容器名稱运敢,此處為mysql
-
-v
:宿主機和容器的目錄映射關系校仑,“:” 前為宿主機目錄 -
-e
:配置信息,此處配置 Mysql 的 root 密碼
Mysql 參數(shù)說明(業(yè)務需要設置):
-
lower_case_table_names=1
:設置表名參數(shù)名等忽略大小寫传惠,解決 Crowd 無法識別大寫表名問題 -
max-allowed-packet=1073741824
:設置最大插入和更新數(shù)據(jù)限制為 1G(1024 * 1024 * 1024 = 1073741824)迄沫,單位:字節(jié),解決 Confluence 數(shù)據(jù)遷移時大數(shù)據(jù)插入問問 -
character_set_server=utf8
:設置 utf8字符集卦方,解決 Confluence 添加修改中文亂碼問題 -
innodb_log_file_size=256m
:設置日志文件大小羊瘩,Confluence 健康檢查推薦大小
# 查看容器運行情況
$ docker ps
# 查看 log
$ docker logs -f mysql
訪問 Mysql 服務
容器內(nèi)訪問
# 進入容器
$ docker exec -it mysql bash
# 容器內(nèi),訪問 Mysql 服務
$ mysql -uroot -pdaodaotest
宿主機訪問
# 僅安裝 Mysql 客戶端
$ rpm -ivh https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm
$ yum install mysql-community-client.x86_64
# 宿主機訪問
$ mysql -h 127.0.0.1 -uroot -pdaodaotest
# 設置 root 用戶允許遠程訪問
> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'daodaotest' WITH GRANT OPTION;
> FLUSH PRIVILEGES;
局域網(wǎng)訪問
# 前提需要設置 root 遠程訪問權限
$ mysql -h 192.168.x.x -uroot -pdaodaotest
微信公眾號:daodaotest