需要提前把包下载https://www.aliyundrive.com/s/rADwC3Pibr9
提取码:em52
请先大概看完步骤再操作,谢谢
第一步: 把下载好的压缩包上传到服务器上
第二步: mkdir /usr/local/mysql
第三步: mv mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz /usr/local/mysql/
第四步: cd /usr/local/mysql/
第五步:tar -xvf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
第六步: mv mysql-8.0.20-linux-glibc2.12-x86_64 mysql-8.0
第七步: cd mysql-8.0/
第八步: mkdir data
第九步: groupadd mysql
第十步: useradd -g mysql mysql
第十一步: chown -R mysql:mysql /usr/local/mysql/mysql-8.0
第十二步: cd bin (或者 cd /usr/local/mysql/mysql-8.0/bin/)
第十三步: ./mysqld --user=mysql --basedir=/usr/local/mysql/mysql-8.0 --datadir=/usr/local/mysql/mysql-8.0/data/ --initialize --lower-case-table-names=1
第十四步: 记得复制密码 这里的是(4-7H>+CUo-F.)等会要用到
第十五步: vim /etc/my.cnf
【编辑 my.cnf (没有就新建一个 touch my.cnf) vim /etc/my.cnf 注释mysqld_safe】
第十六步:修改成这样
[mysqld]
basedir=/usr/local/mysql/mysql-8.0/
datadir=/usr/local/mysql/mysql-8.0/data/
socket=/tmp/mysql.sock
character-set-server=UTF8MB4
lower_case_table_names = 1
bind-address=0.0.0.0
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
#[mysqld_safe]
#log-error=/var/log/mariadb/mariadb.log
#pid-file=/var/run/mariadb/mariadb.pid
#
# include all files from the config directory
#
#!includedir /etc/my.cnf.d
第十七步:保存退出 :wq
第十八步:cp -a /usr/local/mysql/mysql-8.0/support-files/mysql.server /etc/init.d/mysql
第十九步: chmod +x /etc/init.d/mysql
第二十步: chkconfig --add mysql
第二十一步: service mysql start
第二十二步: service mysql stop
第二十三步: service mysql start
第二十四步: service mysql restart
第二十五步: service mysql status
第二十六步: ln -s /usr/local/mysql/mysql-8.0/bin/mysql /usr/bin
第二十七步:mysql -uroot -p'4-7H>+CUo-F.' (密码就是在第十四步让你保存的密码)
第二十八步:alter user root@"localhost" identified by "GO-yy";
第二十九步:exit
第三十步:mysql -u root -p'GO-yy'
恭喜你已完成
部分操作
mkdir /usr/local/mysql
mv mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz /usr/local/mysql/
cd /usr/local/mysql/
tar -xvf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
mv mysql-8.0.20-linux-glibc2.12-x86_64 mysql-8.0
cd mysql-8.0/
mkdir data
groupadd mysql
useradd -g mysql mysql
chown -R mysql:mysql /usr/local/mysql/mysql-8.0
cd /usr/local/mysql/mysql-8.0/bin/
./mysqld --user=mysql --basedir=/usr/local/mysql/mysql-8.0 --datadir=/usr/local/mysql/mysql-8.0/data/ --initialize --lower-case-table-names=1
cat>/etc/my.cnf <<EVN
[mysqld]
basedir=/usr/local/mysql/mysql-8.0/
datadir=/usr/local/mysql/mysql-8.0/data/
socket=/tmp/mysql.sock
character-set-server=UTF8MB4
lower_case_table_names = 1
bind-address=0.0.0.0
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
#[mysqld_safe]
#log-error=/var/log/mariadb/mariadb.log
#pid-file=/var/run/mariadb/mariadb.pid
#
# include all files from the config directory
#
#!includedir /etc/my.cnf.d
EVN
cp -a /usr/local/mysql/mysql-8.0/support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
chkconfig --add mysql
service mysql start
service mysql stop
service mysql start
service mysql restart
service mysql status
ln -s /usr/local/mysql/mysql-8.0/bin/mysql /usr/bin
以上只是搭建mysql服务
下面是mysql服务加主从
主服务器: 192.168.73.2 从服务器:192.168.73.3
安装mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
mkdir /usr/local/mysql
mv mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz /usr/local/mysql/
cd /usr/local/mysql/
tar -xvf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
mv mysql-8.0.20-linux-glibc2.12-x86_64 mysql-8.0
cd mysql-8.0/
mkdir data
groupadd mysql
useradd -g mysql mysql
chown -R mysql:mysql /usr/local/mysql/mysql-8.0
cd bin (或者 cd /usr/local/mysql/mysql-8.0/bin/)
./mysqld --user=mysql --basedir=/usr/local/mysql/mysql-8.0 --datadir=/usr/local/mysql/mysql-8.0/data/ --initialize --lower-case-table-names=1
编译的时候记得复制密码
vim /etc/my.cnf
-------------------------------------------------------------------------------------
[mysqld]
basedir=/usr/local/mysql/mysql-8.0/
datadir=/usr/local/mysql/mysql-8.0/data/
socket=/tmp/mysql.sock
character-set-server=UTF8MB4
lower_case_table_names = 1
bind-address=0.0.0.0
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
#[mysqld_safe]
#log-error=/var/log/mariadb/mariadb.log
#pid-file=/var/run/mariadb/mariadb.pid
#
# include all files from the config directory
#
#!includedir /etc/my.cnf.d
---------------------------------------------------------------------------------------
cp -a /usr/local/mysql/mysql-8.0/support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
chkconfig --add mysql
service mysql start
service mysql stop
service mysql start
service mysql restart
service mysql status
ln -s /usr/local/mysql/mysql-8.0/bin/mysql /usr/bin
mysql -uroot -p'4-7H>+CUo-F.' (编译的时候复制的密码:初始密码)
alter user root@"localhost" identified by "123qqq...A"; #修改密码
exit
------------------------------------------------------------------------------------------------------------------------
主服务器的操作:192.168.73.2
注意先停掉mysql服务在修改
service mysql stop
修改mysql的配置文件 my.conf的文件 (find / -name "my.conf") 如果不知道就用find查询
[mysqld] #在这下面添加2行
log-bin=mysql-bin
server-id=1
service mysql start
----------------------------------------------------------------------------------------------------------------------------
mysql -uroot -p'123qqq...A'
create user 新用户@'%' identified with 'mysql_native_password' by '123456'; #创建新用户
grant REPLICATION SLAVE on *.* to 新用户@'%'; #给用户授权权限(all是所以权限 replication是复制权限1 )
fFLUSH PRIVILEGES; (刷新)
use mysql; (去到mysql库里)
select user,host,plugin,authentication_string from user \G (查看刚刚创建的用户:如:repl)
show master status;
File的值是当前使用的二进制日志的文件名,Position是该日志里面的位置信息(不需要纠结这个究竟代表什么),记住这两个值,会在下面配置从服务器时用到。
File position
| mysql-bin.000001 | 876 |
注意:如果之前的服务器并没有配置使用二进制日志,那么使用上面的sql语句会显示空,在锁表之后,再导出数据库里的数据(如果数据库里没有数据,可以忽略这一步)
mkdir -p /server/backup/
mysqldump -uroot -p'123qqq...A' -S /tmp/mysql.sock --all-databases > /server/backup/mysql_bak.$(date +%F).sql (这步是导出所有数据!!!!)
如果数据量很大,可以在导出时就压缩为原来的大概三分之一
mysqldump -uroot -p'123qqq...A' -S /tmp/mysql.sock --all-databases | gzip > /server/backup/mysql_bak.$(date +%F).sql.gz
这时可以对数据库解锁,恢复对主数据库的操作
mysql > unlock tables; #建议使用第一种方式
rsync /server/backup/mysql_bak今天的日期 root@192.168.73.3:./
以上是主服务器的操作: 192.168.73.2
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
从服务器的操作:192.168.73.3
mkdir -p /server/backup/
mv /root/mysql_bak今天的日期 /server/backup/
同样安装mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz (跟主机器操作一样:只要做到帮root修改密码就可以)
注意先停掉mysql服务在修改
service mysql stop
修改mysql的配置文件 my.conf的文件 (find / -name "my.conf") 如果不知道就用find查询
从服务器上的my.cnf文件中是否已经在[mysqld]模块下配置leserver-id
[mysqld]
server-id=2 #添加(2可以任意修改,最好的ip的最后一位数)
## 忽略表
replicate-wild-ignore-table=mysql.* #添加
replicate-wild-ignore-table=sys.* #添加
servce mysql start
[root@localhost ~]# mysql -uroot -p'123qqq...A' -S /tmp/mysql.sock < /server/backup/mysql_bak.2023-02-06.sql
mysql -u root -p '123456'
mysql> change master to
-> master_host='192.168.73.2', #主服务器的ip地址
-> master_port=3306, #主服务器的mysql端口号
-> master_user='rep', #主服务器配置的用户来连接主数据库
-> master_password='123456', #主服务器配置的用户的密码
-> master_log_file='mysql-bin.000001', # 主服务器的File
-> master_log_pos=876; #主服务器的position
show slave status \G;