赞
踩
之前整理了一篇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
安装仓库。这时会出现如下图的界面:
我是直接选择ok继续的。
sudo apt-get update
更新仓库
sudo apt-get install mysql-server
安装mysql。安装过程中跳出了如下界面
要求我设置一个安全的密码给root。如果留空就启用缺失密码登录,使用UNIX socket的基本认证。避免麻烦,我这里输入了我的密码。然后是如下界面
这里我保留了推荐配置
然后就安装完成了。
如果没有设置默认密码,使用以下指令查看默认密码
sudo cat /etc/mysql/debian.cnf
执行如下命令,配置数据库开机启动
sudo systemctl enable mysql.service
进入数据库
mysql -uroot -p
修改root用户远程访问
use mysql;
update user set host='%' where user='root';
flush privileges;
这个问题是由于刚才我们在选择加密方式的时候选择了默认的加密方式而不是之前5.x的加密方式。这个比较新,所以很多客户端还没有更新。解决的方法有两个,要么使用支持该加密方式的客户端,亲测最新的navicat已经支持,版本12.1.28。当然,也可以修改登录的加密方式。一下代码来源于网络,未测试,欢迎反馈:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
FLUSH PRIVILEGES;
后来安装的时候,发现不自动跳出密码输入和选择界面了。然后就登录不上去了。经过一番折腾,发现是默认设置成了空密码,所以无法登录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
然后我们就可以用这个文件里的默认用户登录了
mysql -udebian-sys-maint -pX4k1p11iFNCzUGQn
然后我们重新设置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;
需要注意的是,如果用户已经设置远程登录了,上面的root@localhost要改成root@%
至此,登录成功。
接下来修改配置文件中的绑定ip,就可以远程访问了
主节点添加如下配置
[mysqld]
log-bin=mysql-bin
server-id=1
从节点添加如下配置
[mysqld]
server-id=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';
这个用户其实也可以用root进行,但是为了稳定和安全,可以用如上语句创建。注意将用户名,绑定ip和密码替换成实际的。
首先要获取主节点binary log文件名和位置
mysql> SHOW MASTER STATUS;
结果大概如下图:
从节点配置
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;
然后在从节点查看主从同步状态
show slave status\G;
在从节点开始同步
start slave;
再查看主从状态。看到等待从主节点发送事件,就说明配成功了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。