前言
第一次在docker中启动mysql容器,步骤如下
提示:以下是本篇文章正文内容,下面案例可供参考
1. 开启docker服务
service docker start • 1
2. 搜索mysql镜像
docker search mysql
3. 拉取mysql镜像
# 这里是选择版本号为8.0.26 docker pull mysql:8.0.26 # 如果不加就是默认最新版
4. 创建mysql容器
记得把 密码 改为自己想要设置的密码
docker run \ --restart=always \ --privileged=true \ -p 3306:3306 --name mysql \ -v /mydata/mysql/log:/var/log/mysql \ -v /mydata/mysql/data:/var/lib/mysql \ -v /mydata/mysql/my.cnf:/etc/mysql/my.cnf \ -v /mydata/mysql/conf.d:/etc/mysql/conf.d \ -e MYSQL_ROOT_PASSWORD=123456 \ -d mysql
参数说明:
–restart=always: 当Docker 重启时,容器会自动启动。
–privileged=true:容器内的root拥有真正root权限,否则容器内root只是外部普通用户权限
-v /mydata/mysql/log:/var/log/mysql 映射日志文件
-v /opt/mysql/data/:/var/lib/mysql 映射数据目录
-v /mydata/mysql/my.cnf:/etc/mysql/my.cnf 映射配置文件
-v /mydata/mysql/conf.d:/etc/mysql/conf.d 映射配置文件
-e MYSQL_ROOT_PASSWORD=123456 映射mysql root用户密码
-d mysql 以后台方式启动
这里可能会报错,需要加入一些配置,把之前创建失败的容器删除,同时把相关目录删除
- 创建目录
mkdir -p /mydata/mysql touch /mydata/mysql/my.cnf
- 在my.cnf中添加以下内容
[mysqld] user=mysql character-set-server=utf8 default_authentication_plugin=mysql_native_password secure_file_priv=/var/lib/mysql expire_logs_days=7 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION max_connections=1000 [client] default-character-set=utf8 [mysql] default-character-set=utf8
- 重新执行创建容器的命令就可以了
5. 创建mysql容器
docker exec -it d_mysql /bin/bash • 1
6. 根目录查看
root@a0f141321913:/# ls -l
7. 登录mysql
mysql -uroot -p123456 • 1
8. 如果想用Navicate连接mysql,需要查看一下权限
select host,user,authentication_string from user;
总结
提示:mysql基本配置如上文所示