当前位置:   article > 正文

ubuntu20.04安装mysql8_ubuntu mysql8

ubuntu mysql8

前言

之前整理了一篇centos7安装mysql8 但是,我最近转战ubuntu了。尤其是,最近笔记本的磁盘还是最终没有撑住,重装了操作系统。索性就全线转战吧。为了避免两个操作系统之间具体操作细节的差异,也避免以后随时要去官网翻文档,读完再安装的尴尬,于是就有了本文。目的就是可以让在ubuntu20.04上安装mysql8这个过程可以被快速得重复。

下载镜像

在链接https://dev.mysql.com/downloads/repo/apt/ 下载deb文件,并上传到服务器中。

sudo dpkg -i ./mysql-apt-config_0.8.20-1_all.deb
  • 1

安装仓库。这时会出现如下图的界面:
仓库配置
我是直接选择ok继续的。

sudo apt-get update
  • 1

更新仓库

sudo apt-get install mysql-server
  • 1

安装mysql。安装过程中跳出了如下界面
设置root密码
要求我设置一个安全的密码给root。如果留空就启用缺失密码登录,使用UNIX socket的基本认证。避免麻烦,我这里输入了我的密码。然后是如下界面
选择认证插件
这里我保留了推荐配置
然后就安装完成了。
如果没有设置默认密码,使用以下指令查看默认密码

sudo cat /etc/mysql/debian.cnf 
  • 1

执行如下命令,配置数据库开机启动

sudo systemctl enable mysql.service
  • 1

配置数据库远程访问

进入数据库

mysql -uroot -p
  • 1

修改root用户远程访问

use mysql;
update user set host='%' where user='root';
flush privileges;
  • 1
  • 2
  • 3

可能的问题

navicat登录报错

navcat登录报错
这个问题是由于刚才我们在选择加密方式的时候选择了默认的加密方式而不是之前5.x的加密方式。这个比较新,所以很多客户端还没有更新。解决的方法有两个,要么使用支持该加密方式的客户端,亲测最新的navicat已经支持,版本12.1.28。当然,也可以修改登录的加密方式。一下代码来源于网络,未测试,欢迎反馈:

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
FLUSH PRIVILEGES;
  • 1
  • 2

后记

默认空密码

后来安装的时候,发现不自动跳出密码输入和选择界面了。然后就登录不上去了。经过一番折腾,发现是默认设置成了空密码,所以无法登录root。但是它创建了一个/etc/mysql/debian.cnf文件。内容如下:

sudo  cat /etc/mysql/debian.cnf

# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host     = localhost
user     = debian-sys-maint(这个就是默认用户)
password = X4k1p11iFNCzUGQn (这个就是密码)
socket   = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host     = localhost
user     = debian-sys-maint
password = X4k1p11iFNCzUGQn
socket   = /var/run/mysqld/mysqld.sock
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

然后我们就可以用这个文件里的默认用户登录了

 mysql -udebian-sys-maint -pX4k1p11iFNCzUGQn
  • 1

然后我们重新设置root密码

alter user 'root'@'localhost' identified by 'your password';
flush privileges;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your password';
flush privileges;
  • 1
  • 2
  • 3
  • 4

需要注意的是,如果用户已经设置远程登录了,上面的root@localhost要改成root@%
至此,登录成功。
接下来修改配置文件中的绑定ip,就可以远程访问了

读写分离

修改配置文件

主节点添加如下配置

[mysqld]
log-bin=mysql-bin
server-id=1
  • 1
  • 2
  • 3

从节点添加如下配置

[mysqld]
server-id=2
  • 1
  • 2

创建用于复制操作的用户

mysql> CREATE USER 'repl'@'192.168.199.198' IDENTIFIED WITH mysql_native_password BY 'Ron_master_1';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.199.198';
  • 1
  • 2

这个用户其实也可以用root进行,但是为了稳定和安全,可以用如上语句创建。注意将用户名,绑定ip和密码替换成实际的。

设置主从

首先要获取主节点binary log文件名和位置

mysql> SHOW MASTER STATUS;
  • 1

结果大概如下图:
主节点位置
从节点配置

mysql> CHANGE MASTER TO
MASTER_HOST='192.168.199.149',
MASTER_USER='repl',
MASTER_PASSWORD='Ron_master_1',
MASTER_LOG_FILE='binlog.000006',
MASTER_LOG_POS=856;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

然后在从节点查看主从同步状态

show slave status\G;
  • 1

在从节点开始同步

start slave;
  • 1

再查看主从状态。看到等待从主节点发送事件,就说明配成功了。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/65148
推荐阅读
相关标签
  

闽ICP备14008679号