docker安装mysql

  1. jpress
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
docker run -d \
--restart unless-stopped \
--privileged=true \
--name mysql-5.7.37 \
--hostname docker-mysql \
--net=mynet \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=lyou \
mysql:5.7.37

docker exec -it mysql-5.7.37 bash

# 关键在于查找 [mysqld] 的配置,修改 @@sql_mode 中 去掉ONLY_FULL_GROUP_BY
find / -name mysql

# 将配置文件拷贝出来
docker cp mysql-5.7.37:/etc/mysql /docker-data/mysql-5.7.37/config
docker cp mysql-5.7.44:/etc/mysql /docker-data/mysql-5.7.44/config
docker cp mysql-5.7.44:/etc/my.cnf /docker-data/mysql-5.7.44/config/
docker cp mysql-5.7.37:/etc/alternatives/my.cnf /docker-data/mysql-5.7.37/


select @@session.sql_mode;

# 修改 /root/docker-data/mysql-5.7.37/config/mysql.conf.d/mysqld.cnf 在最后加入
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION


sudo docker run -d \
-p 3306:3306 \
--restart unless-stopped \
--privileged=true \
--name mysql-5.7.37 \
--hostname docker-mysql \
--net=mynet \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=lyou \
-v /docker-data/mysql-5.7.37/config/:/etc/mysql/ \
-v /docker-data/mysql-5.7.37/data/:/var/lib/mysql/ \
mysql:5.7.37

sudo docker run -d -p 3306:3306 --restart unless-stopped --name mysql-5.7.37 --hostname docker-mysql --net=mynet -e TZ=Asia/Shanghai -e MYSQL_ROOT_PASSWORD=lyou --privileged=true -v /docker-data/mysql-5.7.37/config/:/etc/mysql/ -v /docker-data/mysql-5.7.37/data/:/var/lib/mysql/ mysql:5.7.37

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1、查看sql_mode

select @@sql_mode

查询出来的值为:

ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

2、去掉ONLY_FULL_GROUP_BY,重新设置值。


set @@sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';


3、上面是改变了全局sql_mode,对于新建的数据库有效。对于已存在的数据库,则需要在对应的数据下执行:


set sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

------------------------以上有遇到无效的情况!!

4、想要彻底解决这个问题 就得去改my.cnf 配置

在 [mysqld]下添加

sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
启动数据库后
sql_mode 就是我们设置的值


1
2
3
4
5
6
7
# 登录 mysql
mysql -u root -p

show databases

# 如下可以看到默认支持远程连接
select host,authentication_string,user,plugin from mysql.user;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# 创建数据库
create database admin_tools default character set utf8mb4 collate utf8mb4_unicode_ci;

create database guacamole_db default character set utf8mb4 collate utf8mb4_unicode_ci;



create database kf_yle default character set utf8mb4 collate utf8mb4_unicode_ci;

create database webstack default character set utf8mb4 collate utf8mb4_unicode_ci;

create database npm default character set utf8mb4 collate utf8mb4_unicode_ci;

create database logs_db default character set utf8mb4 collate utf8mb4_unicode_ci;

create database gogs default character set utf8mb4 collate utf8mb4_unicode_ci;
create user 'gogs'@'localhost' identified by 'qwe@123';
create user 'gogs'@'%' identified by 'qwe@123';

create user 'root'@'%' identified by 'lyou';
create user 'root'@'%' identified by 'sCO20Pj31zDOiD2&107Y!$8@';

create user 'ppxx'@'localhost' identified by 'aY13!97b&c@Y&T_re574@';
create user 'ppxx'@'%' identified by 'aY13!97b&c@Y&T_re574@';

set password for root@localhost = password('sCO20Pj31zDOiD2&107Y!$8@');

create database piwigo default character set utf8 collate utf8_general_ci;

create database testgogs default character set utf8 collate utf8_general_ci;

create database TwoNav default character set utf8mb4 collate utf8mb4_unicode_ci;


create database ppxx default character set utf8mb4 collate utf8mb4_unicode_ci;



create database npm default character set utf8 collate utf8_general_ci;

create database ppxx default character set utf8 collate utf8_general_ci;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
-- 登录
mysql -uroot -plyou
-- 查询mysql用户
select user,host,authentication_string from mysql.user;
-- 切换到mysql库
use mysql;
-- 修改root用户host
update user set host='%' where user='root';
-- 授权
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
-- 刷新
FLUSH PRIVILEGES;


-- 指定数据库
grant all privileges on ppxx.* to 'ppxx'@'%';
grant all privileges on ppxx.* to 'ppxx'@'localhost';

jpress

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
create database jpress default character set utf8mb4 collate utf8mb4_unicode_ci;

sudo docker run -itd -p 8080:8080 \
--restart always \
--privileged=true \
--name ubuntu-jpress \
-v /volume1/docker/jpress/:/opt/jpress/ \
ubuntu:latest \
bash /opt/jpress/jpress.sh start


sudo docker run -it -p 8080:8080 \
--restart always \
--name ubuntu-jpress \
-v /Users/janwe/DevCodes/docker/jpress:/opt/jpress \
openjdk:8u282-oraclelinux7 \
echo aaa
./opt/jpress/start-jpress.sh


sudo docker run -itd -p 8080:8080 \
--restart always \
--name ubuntu-jpress \
-v /volume1/docker/jpress:/opt/jpress \
openjdk:8u282-oraclelinux7 \
./opt/jpress/start-jpress.sh

bash /opt/jpress/jpress.sh start

转载请注明来源,欢迎指出任何有错误或不够清晰的表达。可以邮件至 xiyugee@qq.com