1、挂载外部配置和数据安装mkdir /optmkdir /opt/mysqlmkdir /opt/mysql/conf.dmkdir /opt/mysql/data/创建f配置文件touch/opt/mysql/ff添加如下内容:[mysqld]user=mysqlcharacter-set-server=utf8default_authentication_plugin=mysql_native_passwordsecure_file_priv=/var/lib/mysqlexpire_logs_days=7sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTIONmax_connections=1000[client]default-character-set=utf8[mysql]default-character-set=utf82、创建容器,并后台启动docker run --restart=always --privileged=true -d -v /opt/mysql/data/:/var/lib/mysql -v /opt/mysql/conf.d:/etc/mysql/conf.d -v /opt/mysql/f:/etc/mysql/f -p 33060:3306 --name my-mysql -e MYSQL_ROOT_PASSWORD=123456 mysql参数说明:--restart=always: 当Docker 重启时,容器会自动启动。--privileged=true:容器内的root拥有真正root权限,否则容器内root只是外部普通用户权限-v /opt/mysql/conf.d/f:/etc/f:映射配置文件-v /opt/mysql/data/:/var/lib/mysql:映射数据目录注意:启动mysql报如下错误,那是因为MYSQL新特性secure_file_priv对读写文件的影响。
ERROR: mysqld failed while attempting to check configcommand was: "mysqld --verbose --help"mysqld: Error on realpath() on '/var/lib/mysql-files' (Error 2 - No such file or directory)-09-14T09:52:51.015937Z 0 [ERROR] [MY-010095] [Server] Failed to access directory for --secure-file-priv. Please make sure that directory exists and is accessible by MySQL Server. Supplied value : /var/lib/mysql-files-09-14T09:52:51.018328Z 0 [ERROR] [MY-010119] [Server] Aborting
解决问题:windows下:修改my.ini 在[mysqld]内加入secure_file_priv=/var/lib/mysqllinux下:修改f 在[mysqld]内加入secure_file_priv=/var/lib/mysql