1、下载mysql安装包
2、解压
tar -xvf mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz
3、再移动并重命名一下
mv mysql-5.7.33-linux-glibc2.12-x86_64 /usr/local/mysql
4、创建mysql用户组和用户并修改权限
groupadd mysql
useradd -r -g mysql mysql
5、创建数据目录并赋予权限
mkdir -p /data/mysql #创建目录
chown mysql:mysql -R /data/mysql #赋予权限
6、配置my.cnf
vim /etc/my.cnf
内容如下:
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true
7、进入mysql的bin目录
cd /usr/local/mysql/bin/
8、初始化
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
9、查看密码
cat /data/mysql/mysql.err
ps:以下是例子,按运行情况保存初始化密码
内容:
2021-06-10T09:01:25.338343Z 0 [Warning] InnoDB: New log files created, LSN=45790
2021-06-10T09:01:25.606356Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2021-06-10T09:01:25.762305Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 6f963169-c9ca-11eb-bc94-000c2999dcd6.
2021-06-10T09:01:25.780148Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2021-06-10T09:01:27.398664Z 0 [Warning] CA certificate ca.pem is self signed.
2021-06-10T09:01:28.098833Z 1 [Note] A temporary password is generated for root@localhost: j?:BxZLtZ4W6
记住密码:j?:BxZLtZ4W6
10、先将mysql.server放置到/etc/init.d/mysql中
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
11、启动
service mysql start
如果这步报错:
Starting MySQL.2021-06-10T09:02:37.809931Z mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.
ERROR! The server quit without updating PID file (/data/mysql/mysql.pid).
则:
mkdir /var/log/mariadb
touch /var/log/mariadb/mariadb.log
chown -R mysql:mysql /var/log/mariadb/
继续启动:
service mysql start
12、修改密码
./mysql -u root -p #bin目录下(登录需要用到前面保存的密码)
执行命令
SET PASSWORD = PASSWORD('123456');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;
13、设置远程登录
use mysql #访问mysql库
update user set host = '%' where user = 'root'; #使root能再任何host访问
FLUSH PRIVILEGES;
14、关闭数据库
service mysql stop
设置mysql数据库主从同步
停止主从两个数据库
修改主库 my.conf文件,添加如下内容
server-id=1
# 启用二进制日志
log-bin=/data/mysql/log/mysql-bin.log
# 设置需要同步的库
binlog-do-db=hydata
# 屏蔽系统库
binlog-ignore-db=mysql
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
binlog-ignore-db=information_schema
设置从库的 my.conf文件
server-id=2
# 设置需要同步的库
binlog-do-db=hydata.%
# 屏蔽系统库
binlog-ignore-db=mysql.%
binlog-ignore-db=performance_schema.%
binlog-ignore-db=sys.%
binlog-ignore-db=information_schema.%
启动主从两个库
查看主MySQL状态
show master status;
设置slave服务器MySQL:
# 先停止同步
STOP SLAVE;
change master to
master_host='主服务器ip地址',
master_port=3306,master_user='链接主服务器账户',
master_password='链接主服务器角色账户密码',
master_log_file='主服务器file参数',
master_log_pos=主服务器positon参数
# 启动同步
START SLAVE;
# 查看从库的Slave_IO_Running 和Slave_SQL_Running 如果都为YES表示同步成功
show slave status;
如下例子: