mysql 8.0 安装

环境

  • CentOS 7.5
  • Docker 1.13.1
  • MySQL 8.0.16

安装

拉取镜像

默认拉取最新版本的镜像

docker pull mysql

如果要指定版本,使用下面的命令

$ docker pull mysql  目前是8.0.25版本

创建数据目录和配置文件

在宿主机创建放置mysql的配置文件的目录和数据目录,并且进行授权

 mkdir -p /usr/mysql/conf /usr/mysql/data $ chmod -R 755 /usr/mysql/

创建配置文件

在上面创建的配置文件目录/usr/mysql/conf下创建MySQL的配置文件my.cnf

vim /mnt/mysql/my.cnf

添加以下内容到上述创建的配置文件中

[cient] 
#socket = /usr/mysql/mysqld.sock
default-character-set = utf8mb4 
 
[mysql]
default-character-set= utf8mb4
 
[mysqld] 
default-time-zone=Asia/Shanghai
#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
 
datadir = /usr/mysql/data
init_connect='SET NAMES utf8mb4'
skip-character-set-client-handshake
character_set_server = utf8mb4
# default-character-set=utf8mb4
# character_set_system=utf8mb4
collation_server = utf8mb4_bin
secure-file-priv= NULL
lower_case_table_names=1
default_authentication_plugin= mysql_native_password
 
innodb_large_prefix = ON
 
# Disabling symbolic-links is recommended to prevent assorted security risks 
symbolic-links=0 
# Custom config should go here 
!includedir /etc/mysql/conf.d/
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' 


# SQL数据包发送的大小,如果有BLOB对象建议修改成1G
max_allowed_packet = 128M

# MySQL连接闲置超过一定时间后(单位:秒)将会被强行关闭
# MySQL默认的wait_timeout  值为8个小时, interactive_timeout参数需要同时配置才能生效
interactive_timeout = 1800
wait_timeout = 1800

# 内部内存临时表的最大值 ,设置成128M。
# 比如大数据量的group by ,order by时可能用到临时表,
# 超过了这个值将写入磁盘,系统IO压力增大
tmp_table_size = 134217728
max_heap_table_size = 134217728

# mysql binlog日志文件保存的过期时间,过期后自动删除
expire_logs_days = 5

max_connections = 3000
mysqlx_max_connections=800

innodb_flush_log_at_trx_commit=2
sync_binlog=500
  • /etc/localtime:/etc/localtime:ro 是让容器的时钟与宿主机时钟同步,避免时区的问题,ro是read only的意思,就是只读。

启动创建容器

$ docker run --restart=unless-stopped -d --name mysql -v /mnt/my.cnf:/etc/mysql/my.cnf -v /usr/mysql/data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

参数解释:
-v : 挂载宿主机目录和 docker容器中的目录,前面是宿主机目录,后面是容器内部目录

-d : 后台运行容器

-p 映射容器端口号和宿主机端口号

-e 环境参数,MYSQL_ROOT_PASSWORD设置root用户的密码

执行上述命令后,执行查询容器的命令就可以看到创建的mysql容器

$ docker ps -a

结果如下所示:

问题

上述虽然安装好了mysql,但是使用远程的Navicat连接时提示错误,不能正确连接mysql,此时需要修改按照下面说的步骤修改一下mysql的密码模式以及主机等内容才可以。

修改mysql密码以及可访问主机

  • 进入容器内部

$ docker exec -it mysql /bin/bash

  • 连接mysql

$ mysql -uroot -p

  • 使用mysql库

$ mysql> use mysql

  • 修改访问主机以及密码等,设置为所有主机可访问

查看加密方式

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

 3.修改数据库

ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
      mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '新密码';  

    4.重新修改密码后可连接成功
      mysql> alter user 'root'@'%' identified by '123456';  // 注意这里是修改的远程密码。 

注意:

mysql_native_password,mysql8.x版本必须使用这种模式,否则navicate无法正确连接

  • 刷新
$ mysql> flush privileges

经过以上步骤,再次远程使用Navicat连接数据库时就可以正常连接了。

修改配置文件:

vim /usr/lib/sysctl.d/00-system.conf

追加

 net.ipv4.ip_forward=1

接着重启网络

[root@localhost mytomcat]# systemctl restart network

其他配置

[mysqld] 
default_authentication_plugin=mysql_native_password //修改密码加密方式 
log-bin-trust-function-creators=1 //防止function函数无法创建 
binlog_expire_logs_seconds=604800 //7天日志会被清除,保证日志文件不会过大 
innodb_file_per_table //每个表一个文件存储 
innodb_flush_log_at_trx_commit = 2 //bin日志写入方式,尽量保证性能优先 
lower_case_table_names=1 //表名等信息大小写不敏感 
group_concat_max_len=1M //group_concat可以拼接的最大长度 
log_output=table,file //将慢查询的SQL写入文件和表(mysql.slow.log) 
long_query_time = 2 //指定慢查询的阀值 
port=3306 //端口号 
basedir=D:/zhaoyi/abiz_aeps/etc/mysql //mysql安装目录(需根据实际情况修改) 
datadir=D:/zhaoyi/abiz_aeps/etc/mysql/data //data目录的路径(需根据实际情况修改) 
character_set_server=utf8mb4 //指定编码格式 
default-storage-engine=INNODB //设置默认引擎 
explicit_defaults_for_timestamp=true //解决时间戳不能为00-00 00:00:00的问题 
connect_timeout=600 
wait_timeout=600 
max_connections=3000 //最大连接数 
sql_mode= //sql的语法模式 
ngram_token_size=1//ngram的最小分词 
ft_min_word_len=1//mysql的最小索引长度 
[mysql] 
default-character-set=utf8mb4 
[client] 
default-character-set=utf8mb4

引用: 

使用Navicat连接MySql8.0版本远程数据库_csdn非非非非的博客-CSDN博客

https://bbs.huaweicloud.com/blogs/158656

Linux下Navicat无法远程连接MySQL8的解决办法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值