docker启动mysql
docker run \ -p 3307:3306 \ --name mysql-first \ --privileged=true \ --restart unless-stopped \ -v /usr/local/mysql/mysql-first/conf.d:/etc/mysql/conf.d \ -v /usr/local/mysql/mysql-first/logs:/logs \ -v /usr/local/mysql/mysql-first/data:/var/lib/mysql \
-v /etc/localtime:/etc/localtime \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql
解释: -p 端口映射 【这里有个特殊的地方是把3306映射给了3307、后续链接数据库的时候用3307链接不用3306】
--name mysql-first 名称是mysql-first
--privileged=true 挂载文件权限设置
--restart unless-stopped 设置 开机后自动重启容器
-v /usr/local/mysql/mysql-first/conf.d:/etc/mysql/conf.d \ 挂载配置文件【路径是上面创建的挂载路径】
-v /usr/local/mysql/mysql-first/logs:/logs \ 挂载日志【路径是上面创建的挂载路径】
-v /usr/local/mysql/mysql-first/data:/var/lib/mysql \ 挂载数据文件 持久化到主机【路径是上面创建的挂载路径】
-v /etc/localtime:/etc/localtime 容器时间与宿主机同步
-e MYSQL_ROOT_PASSWORD=123456 设置密码
-d mysql 后台启动,mysql
检查是否启动成功
docker ps
6.配置链接信息
到这里已经成功启动了、但是连接还需要在配置之后才可以链接。
进入mysql8 容器
docker exec -it mysql8 bash
在容器内登录mysql
mysql -u root -p
如果出现异常:(初始密码不成功,密码默认为空,直接Enter)保证进入到mysql命令行。
设置权限(为root分配权限,以便可以远程连接)
grant all PRIVILEGES on *.* to root@'%' WITH GRANT OPTION;
use mysql
update user set host='%' where user='root';
由于Mysql5.6以上的版本修改了Password算法,这里需要更新密码算法,便于使用Navicat连接
grant all PRIVILEGES on *.* to root@'%' WITH GRANT OPTION;
ALTER user 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
FLUSH PRIVILEGES;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)