docker安装mysql并且解决一下问题

1.准备

你得有能正常运行的docker

2.拉取镜像

搜索一下镜像 不搜索也行

docker search mysql

拉取镜像

docker pull mysql:8

拉取指定版本镜像

docker pull mysql:version

查看镜像

docker images

3安装mysql

如果你不需要挂载目录,直接运行

docker run -p 3306:3306 --name mysql --privileged=true \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:8

如果要挂载目录 保存数据到centos

首先创建目录

mkdir /admin/mysql/data
mkdir /admin/mysql/log
mkdir /admin/mysql/conf
#目录可以不建 docker会帮你默认生成

mysql配置 此配置要放在 conf目录下

[client]

#socket = /usr/mysql/mysqld.sock
#默认数据库字符集为utf-8
default-character-set = utf8mb4

[mysqld]
#跳过验证
#skip-grant-tables

#pid-file        = /var/run/mysqld/mysqld.pid

#socket          = /var/run/mysqld/mysqld.sock

#datadir         = /var/lib/mysql

#socket = /usr/mysql/mysqld.sock

#pid-file = /usr/mysql/mysqld.pid
#服务器字节集设置为utf-8
character_set_server = utf8mb4

collation_server = utf8mb4_bin

secure-file-priv= NULL

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

# Custom config should go here

#includedir /etc/mysql/conf.d/
#忽略大小写
lower_case_table_names=1

然后启动mq实例

docker run -d -p 3306:3306 --privileged=true -v /admin/mysql8/log:/var/log/mysql -v /admin/mysql8/data:/var/lib/mysql -v /admin/mysql8/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456  --name mysql mysql

-p 端口映射 将docker的3306端口映射到linux的3307

–name mysql-master docker容器实例名 如果不写 会随机生成一个

-v 数据卷挂载

-e mysql环境 设置mysql的密码位123456

-d 后台运行

#查看 mysql是否允许
docker ps 
#查询运行日志 用于启动报错解决 docker logs 实例名称或者id
docker logs mysql

4错误解决

如果你安装后发现密码登录不上

#进入docker容器
docker exec -it mysql bash
#mysql登录
mysql -u root -p
#然后输入密码 发现错误

修改配置 添加

#跳过mysql登录验证
skip-grant-tables

然后重新登录 密码直接回车就可以进入

问题:新版 MySQL 授权用户时报错 near 'IDENTIFIED BY '密码' with grant option' at line 1
原因:因为新版的的mysql版本已经将创建账户和赋予权限的方式分开了
解决:
1.添加用户
CREATE USER '用户名' IDENTIFIED BY '密码';
2.赋予权限
GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%';
3.修改加密规则
ALTER USER '用户名'@'%' IDENTIFIED BY '密码' PASSWORD EXPIRE NEVER;
4.更新一下用户密码
ALTER USER '用户名'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
5.更新配置信息
FLUSH PRIVILEGES;

进入mysql后

use mysql;
#添加一个远程登录用户
CREATE USER 'admin' IDENTIFIED BY '123456';
#授权
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%';
#更新一下本地root账户密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
#更新配置信息
FLUSH PRIVILEGES;

如果执行命令时提示无权执行

先执行

FLUSH PRIVILEGES;

然后退出容器

ctl + p ;ctl + q

然后去掉跳过验证配置

重启mysql

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值