docker容器中部署mysql/mariadb
启动数据库
docker run -p 3306:3306 --name mariadb -e MYSQL_ROOT_PASSWORD=12345 -d mariadb
以交互模式进入容器
docker exec -it mariadb bash
登陆数据库
mariadb -u root -p
12345
如果登录提示【ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)】
在容器中找到配置文件添加跳过权限 echo "skip-grant-tables" >> mysqld.cnf 不同的版本号配置文件不一致 举例mysql:5.7.22 cat /etc/mysql/my.cnf 内容如下表示用的其他配置文件组合起来的,skip-grant-tables该指令需要加载[mysqld]下 !includedir /etc/mysql/conf.d/ !includedir /etc/mysql/mysql.conf.d/ cat /etc/mysql/mysql.conf.d/mysqld.cnf 内容如下 [mysqld] pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock datadir = /var/lib/mysql #log-error = /var/log/mysql/error.log # By default we only accept connections from localhost #bind-address = 127.0.0.1 # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 在这个后边直接追加即可 exit;退出容器重启mysql docker restart mysql
修改数据库用户名密码为root(sql)
//方式1
set password for root@localhost = password('root');
//方式2
Use mysql;
Update user set authentication_string = password('root') where user = 'root';
//方式3 mysql8
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
FLUSH PRIVILEGES;//刷新权限
如果有添加过skip-grant-tables则查找该字符串排除后放到临时文件 再覆盖
grep -v 'skip-grant-tables' mysqld.cnf > mysqld.cnf.tmp && cp mysqld.cnf.tmp mysqld.cnf
mysql对root进行授权(sql)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
授权后即可使用宿主机的ip连接mysql
如:ubuntu为宿主机IP为:192.168.1.1 使用docker部署mysql则进入mysql容器授权后即可连接 //用户名:root //密码:root //ip地址:192.168.1.1 //端口:3306
分类:
Java问题点及解决方法
, 微服务
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix