docker安装mysql

1.下载镜像docker pull mysql 2.运行docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 mysql 3.复制配置文件docker cp mysql:/etc/mysql/my.cnf /home/mysql/my.cnf 4.重新运行

docker安装mysql

下载镜像

docker pull mysql

运行

 docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 mysql

复制配置文件


mkdir /home/mysql


# 复制mysql 配置文件
docker cp mysql:/etc/mysql/my.cnf /home/mysql/my.cnf

# 修改my.cnf 配置文件secure-file-priv属性
secure-file-priv= /var/lib/mysql

# 设置忽略表名大小写
sudo tee -a /home/mysql/my.cnf <<-'EOF'
 lower_case_table_names=1 
EOF

# 删除旧实例
docker rm -f mysql



重新运行



docker run \
 --name mysql \
 -p 3306:3306 \
 -v /home/mysql/data:/var/lib/mysql \
 -v /home/mysql/log:/var/log/mysql \
 -v /home/mysql/my.cnf:/etc/mysql/my.cnf \
 -e MYSQL_ROOT_PASSWORD=1234 \
 --restart=always \
 --privileged=true \
 -d mysql

修改密码

# 进入mysql容器内部
docker exec -it mysql /bin/bash
# 登录mysql
mysql -uroot -p
# 输入密码
# 切换数据库
use mysql;


# 授权root用户远程访问权限
grant all privileges on *.*  to 'root'@'%' ;
# 修改密码加密方式
alter user 'root' @'%' identified with mysql_native_password by '1234';
alter user 'root' @'localhost' identified with mysql_native_password by '1234';
# 刷新权限
flush privileges;

备份和恢复



mysql如何优雅的复制库
1、首先在目标库新建库

2、同台服务器

  #mysqldump 数据库1 -uroot -p1234 | mysql 数据库2 -uroot -p1234
3、两台服务器   #mysqldump olddb -uroot -p123456 | mysql -h ip:端口 newdb -uroot -p123456

sql_model 问题

# 临时解决
先执行 select @@sql_mode 将值查询出来,然后将结果中的ONLY_FULL_GROUP_BY去掉
set @@SESSION.sql_mode='去掉ONLY_FULL_GROUP_BY的@@sql_mode值';


# 永久解决
sql_mode=select @@sql_mode查出sql_mode以后去掉ONLY_FULL_GROUP_BY的值

示例: 


sudo tee -a /home/mysql/my.cnf <<-'EOF'
 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
EOF

docker 执行 mysql数据恢复

docker exec -i mysql mysql -uroot -p1234 ry < /home/mysql/ruoyi2.sql

创建用户

# 创建用户
create user 'canal'@'%' identified with mysql_native_password by 'Zkpd@123';

# 授权所有权限
grant all privileges on *.* to 'ry'@'%' with grant option;
# 授权用户可以修改存储过程
grant ALTER ROUTINE on pbs_hyj.* to 'test'@'%' with grant option;
# 授权用户可以创建存储过程
grant CREATE ROUTINE on pbs_hyj.* to 'test'@'%' with grant option;

# canal用户授权
grant REPLICATION CLIENT,REPLICATION SLAVE on *.* to 'caas_tomcat_rw'@'%' with grant option;



grant all privileges on mysql.help_relation to 'ry'@'%' with grant option;
grant all privileges on mysql.help_keyword to 'ry'@'%' with grant option;
grant all privileges on mysql.help_category to 'ry'@'%' with grant option;
grant all privileges on mysql.help_topic to 'ry'@'%' with grant option;

# 刷新权限
flush privileges;

查询死锁日志

    SHOW ENGINE INNODB STATUS;
上一篇 2022年04月09 21:56
下一篇 2022年04月09 22:17

相关推荐

  • 微波炉腊肠煲仔饭的做法,程序员方式做微波炉腊肠煲仔饭

    程序员以单身汉居多 🐶,做再多的菜也会有一个人吃不完的烦恼,因此一份简单的腊肠煲仔饭则刚刚好。使用微波炉烹制仅需 15 分钟 ,既营养又美味,这是一道简单且细腻的主食,给 TA 露上一手吧。

    2022年04月07 240
  • 炸酱面的做法,程序员方式做炸酱面

    白菜(或其他菜)切丝,焯水至软化熟透,盛出备用。 煮面条至断生(无白芯),连同汤水一同盛出备用。 蒜切末。油锅烧热,下蒜末和肉,炒至肉完全熟透(无红色)。 下豆瓣酱和甜面酱,加 30g 水盖盖焖煮至收汁粘稠,得到炸酱。 第 2 步面条倒掉汤水,盛入碗中,加第 1 步的菜和第 4 步的炸酱,拌匀可吃。

    2022年04月07 263
  • 中式馅饼的做法,程序员方式做馅饼

    热锅冷油,宽油起锅。 待油烧热后,放入蒜末爆香。 加入腌制的肉沫,翻炒,直至断生。 将胡萝卜末加入肉沫中一同翻炒,直至油被染为金黄色(这是为了萃取胡萝卜的风味)。 关火。冷却 2 分钟。 将炒好的肉沫倒入生面糊中,搅匀。 重新开火,平底锅铺底油。

    2022年04月07 260
  • 披萨饼皮的做法,程序员方式做披萨饼皮

    披萨制作总体来说比较简单,稍微有点麻烦也是争议最多的就是披萨饼皮,做好了披萨饼皮喜欢吃什么口味的披萨,直接把准备好的食材放上去烤熟就好,所以这里重点说一下披萨饼皮如何制作。本教程中的饼皮是属于软面团低温隔夜发酵.

    2022年04月07 206
关注微信