mysql一键安装脚本(查看mysql的安装路径)

1、安装MySQL 1.1、拉取mysql dockerpullmysql:5.7 1.2、启动mysql dockerrun-p3306:3306–namemysql -v/mydata/mysql/log:/var/log/mysql -v/mydata/mysql/data:/var/lib/mysql -v/mydata/mysql/conf:/etc/mysql -eMYSQL_ROO…

1、安装 MySQL

1.1、拉取mysql

docker pull mysql:5.7

1.2、启动mysql

docker run -p 3306:3306 –name mysql

-v /mydata/mysql/log:/var/log/mysql

-v /mydata/mysql/data:/var/lib/mysql

-v /mydata/mysql/conf:/etc/mysql

-e MYSQL_ROOT_PASSWORD=root

-d mysql:5.7

参数说明

-p 3306:3306 将容器的3306端口映射到主机的3306端口,3306是和宿主机的通信接口,所有docker内部容器的连接使用3306接口,集群配置需连接容器内部3306端口,故最好保持前后端口一致

–name mysql 容器名字

-v
/mydata/mysql/log:/var/log/mysql 将配置文件夹挂载到主机

-v
/mydata/mysql/data:/var/lib/mysql 将日志文件夹挂载到主机

-v
/mydata/mysql/conf:/etc/mysql 将配置文件夹挂载到主机

-e MYSQL_ROOT_PASSWORD=root 初始化 root 用户的密码

-d mysql:5.7 以守护进程方式启动 mysql:5.7 镜像

1.3. 查看启动是否成功

docker ps

注:如启动失败可通过docker logs mysql查看日志排错

mysql一键安装脚本(查看mysql的安装路径)

1.4、mysql 配置

vi /mydata/mysql/conf/my.cnf

文件内容如下:

[client]

default-character-set=utf8

[mysql]

default-character-set=utf8

[mysqld]

init_connect=’SET collation_connection = utf8_unicode_ci’

init_connect=’SET NAMES utf8′

character-set-server=utf8

collation-server=utf8_unicode_ci

skip-character-set-client-handshake

#允许最大连接数;MySQL的max_connections参数用来设置最大连接(用户)数。每个连接MySQL的用户均算作一个连接,max_connections的默认值为100

#MySQL无论如何都会保留一个用于管理员(SUPER)登陆的连接,用于管理员连接数据库进行维护操作,即使当前连接数已经达到了max_connections。因此MySQL的实际最大可连接数为max_connections+1;

这个参数实际起作用的最大值(实际最大可连接数)为16384,即该参数最大值不能超过16384,即使超过也以16384为准;

增加max_connections参数的值,不会占用太多系统资源。系统资源(CPU、内存)的占用主要取决于查询的密度、效率等;

max_connections=1000

============== 2020/05/20 添加 ==============

bug:

导入 SQL 的时候出现 Error #1055

reason:

在MySQL5.7之后,sql_mode中默认存在ONLY_FULL_GROUP_BY,SQL语句未通过ONLY_FULL_GROUP_BY语义检查所以报错。

ONLY_FULL_GROUP_BY:ONLY_FULL_GROUP_BY要求select语句中查询出来的列必须是明确的(其他语句也是一样)。

fix:

1. 在配置文件 [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’

2. 重启 mysql 容器。

注意: mysql为容器的名字,不同的请更换。或使用容器ID即可。

docker restart mysql

=======================================

1.5、mysql 随 docker 自启动

docker update mysql –restart=always

注意:这里的 mysql 是容器的名字,不是镜像的名字。

1.6、进入 mysql (optional)

docker exec -it mysql /bin/bash

按Ctrl+D或输入exit退出。

1.7、登录 mysql (optional)

mysql -u root -p

mysql一键安装脚本(查看mysql的安装路径)

注意:密码root密码是上面设置的root

1.8、修改mysql开启远程访问

1.8.1、查看用户信息

mysql> select host,user,plugin,authentication_string from mysql.user;

mysql一键安装脚本(查看mysql的安装路径)

备注:host为 % 表示不限制ip localhost表示本机使用 plugin非mysql_native_password 则需要修改密码

navicat链接错误;我们继续往下看;

mysql一键安装脚本(查看mysql的安装路径)

1.8.2、开启远程访问:

mysql> ALTER user ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘root’;

Query OK, 0 rows affected (0.01 sec)

mysql> FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.01 sec)

mysql一键安装脚本(查看mysql的安装路径)

注:如本机已安装有mysql,3306端口被占用,外部端口可以映射为其他端口,如下:

docker run -p 13306:3306 –name mysql …

mysql一键安装脚本(查看mysql的安装路径)

1.9、查看日志

docker logs mysql

1.10、开启binlog日志

查看是否开启binlog日志:

show variables like ‘%log_bin%’

mysql一键安装脚本(查看mysql的安装路径)

找到刚挂载到本地的mysql设置目录/mydata/mysql/conf

[root@slave132 conf]# cd /mydata/mysql/conf

[root@slave132 conf]# ll

总用量 4

-rw-r–r–. 1 root root 481 9月 22 10:12 my.cnf

[root@slave132 conf]# vi my.conf

mysql一键安装脚本(查看mysql的安装路径)

新增内容如下:

#binlog setting

log-bin=/var/lib/mysql/mysql-bin server-id=12345

第一个参数:作用是mysql会根据这个配置自动设置log_bin为on状态,自动设置log_bin_index文件为你指定的文件名后跟.index

第二个参数:用的如果是5.7及以上版本的话,重启mysql服务会报错,这个时候我们必须还要指定这样一个参数,随机指定一个不能和其他集群中机器重名的字符串,如果只有一台机器,那就可以随便指定了

设置完后重启mysql容器

docker restart mysql

show variables like ‘%log_bin%’

mysql一键安装脚本(查看mysql的安装路径)

这个时候,在数据库中创建一个数据库、表,插入一些数据,就会在/var/lib/mysql容器中看到以下,或者是看挂载出来对应的目录上(/mydata/mysql/data)

mysql一键安装脚本(查看mysql的安装路径)

本文来自投稿,不代表来拓客立场,如若转载,请注明出处:https://www.laituoke.com/ltk/4970.html