快速安装 Mysql 8.x
- 启动未映射配置目录的Mysql容器, 用于复制默认配置
- 由于没有配置文件无法直接启动 Mysql 所以将 映射到了
- 外部目录 /data/docker-data/mysql-service/conf/ 映射到了 /etc/mysql.extract/
```bash
__run_mysql8() {
_name=”mysql-service”
docker rm -f “$_name”
docker run —name “$_name” -t \
--restart=always \-p 3306:3306 \-e MYSQL_USER="user_name" \-e MYSQL_PASSWORD="user_pwd" \-e MYSQL_ROOT_PASSWORD="root_pwd" \-v /data/docker-data/mysql-service/conf/:/etc/mysql.extract/ \-v /data/docker-data/mysql-service/data/:/var/lib/mysql \-d mysql:8.0.29 \--character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci \--default-authentication-plugin=mysql_native_password
} __run_mysql8
<a name="QWuAU"></a>### 如果不需要自定义 my.cnf 配置文件, 那么你的安装就结束了, 反正则可以继续看如果想自定义配置, 那么在容器内部执行命令将 配置文件复制到 /data/docker-data/mysql-service/conf/```bashdocker exec -it -u root mysql-service bash -c 'cp -rf /etc/mysql/* /etc/mysql.extract/'
然后修改容器启动命令再次运行, 注意下面 第 11 行和上面第11 行的变化
__run_mysql8() {_name="mysql-service"docker rm -f "$_name"docker run --name "$_name" -t \--restart=always \--network=host \-p 3306:3306 \-e MYSQL_USER="user_name" \-e MYSQL_PASSWORD="user_pwd" \-e MYSQL_ROOT_PASSWORD="root_pwd" \-v /data/docker-data/mysql-service/conf/:/etc/mysql/ \-v /data/docker-data/mysql-service/data/:/var/lib/mysql \-d mysql:8.0.27 \--character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci \--default-authentication-plugin=mysql_native_password}__run_mysql8
常用配置文件
如果你不熟悉 Mysql 配置, 学习阶段保持默认配置就行
写入配置后需要重新 Mysql 容器
设备内存 4G 左右的配置
__set_config_mysql() {mkdir -p /data/docker-data/mysql-service/conf/cat >/data/docker-data/mysql-service/conf/my.cnf <<-'AEOF'[mysqld]pid-file = /var/run/mysqld/mysqld.pidsocket = /var/run/mysqld/mysqld.sockdatadir = /var/lib/mysqlsecure-file-priv= NULL# Custom config should go here!includedir /etc/mysql/conf.d/max_connections=1000max_heap_table_size=1Gtmp_table_size=1Gjoin_buffer_size=2Ginnodb_buffer_pool_size=2Ginnodb_buffer_pool_instances=32innodb_flush_log_at_timeout=5innodb_read_io_threads=16innodb_write_io_threads=16innodb_io_capacity=2000innodb_io_capacity_max=5000AEOF}__set_config_mysql
推荐使用 phpmyadmin方便学习
__myadmin() {docker rm -f myadmindocker run -d -p 33068:80 \-e PMA_HOST="192.168.66.100" \-e PMA_PORT=3306 \-e PMA_USER=root \-e PMA_PASSWORD=root_pwd \--name myadmin \phpmyadmin/phpmyadmin}__myadmin
