docker安装Mysql8.240105
0. 系统优化
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
1. 准备conf文件
mkdir -p /home/mysql/conf
cd /home/mysql/conf
vim my.cnf
写以下内容:
[mysql] #设置mysql客户端默认字符集 default-character-set=utf8mb4 [mysqld] # 数据库忽略大小写 8.0加了启动报错 # lower_case_table_names = 1 #设置3306端口 port=3306 #允许最大连接数 max_connections=1000 #允许连接失败的次数。 max_connect_errors=10 #最大允许包 max_allowed_packet=10M #服务端使用的字符集默认为utf8mb4 character-set-server=utf8mb4 collation_server = utf8mb4_general_ci #创建新表时将使用的默认存储引擎 default-storage-engine=INNODB # mysql8中“mysql_native_password”插件认证不让用了,改成默认的caching_sha2_password default_authentication_plugin=caching_sha2_password
2. 命令行启动容器
docker run -d -p 3316:3306 \ --restart=always \ --privileged=true \ -v /home/mysql/log:/var/log/mysql \ -v /home/mysql/data:/var/lib/mysql \ -v /home/mysql/conf/my.cnf:/etc/mysql/my.cnf \ -v /home/mysql/mysql-files:/var/lib/mysql-files \ -v /etc/timezone:/etc/timezone:ro \ -v /etc/localtime:/etc/localtime:ro \ -e MYSQL_ROOT_PASSWORD=mysql123 \ -e TZ=Asia/Shanghai \ --name mysql mysql:latest
启动成功后,进入容器:
docker exec -it mysql bash root@a18abfe70e23:/# mysql -u root -p mysql> use mysql; mysql> select Host, User, plugin, authentication_string from user;
OK
3. 番外:改root密码
-- 改本地root密码 mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password'; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) -- 改本地root密码 mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'new_password'; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)
喜欢请赞赏一下啦^_^

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通