MySQL8 安装及主从搭建

一、MySQL安装

#卸载自带残留的mysql,或文件夹

rpm -qa | grep mysql
find - / -name mysql

#上传解压MySQL包,tar包

tar -xvf mysql-8.0.22-linux-glibc2.12-x86_64.tar.xz

#复制解压后的文件到 /usr/local命名mysql

cp -r mysql-8.0.22-linux-glibc2.12-x86_64 /inspur/mysql

#创建mysql配置存放目录data

cd /inspur/mysql
mkdir data

#创建mysql用户组和用户

groupadd mysql
useradd -r -g mysql mysql

#为MySQL目录修改用户权限

chown -R mysql:mysql /inspur/mysql/

#配置mysql(my.cnf)

vim /etc/my.cnf
[mysqld]
basedir=/inspur/mysql
datadir=/inspur/mysql/data
#skip-grant-tables
port=3306
pid-file=/inspur/mysql/data/mysql.pid
socket=/tmp/mysql.sock
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
default_authentication_plugin=mysql_native_password
#数据库默认字符集, 主流字符集支持一些特殊表情符号(特殊表情符占用4个字节)
character-set-server = utf8mb4
#数据库字符集对应一些排序等规则,注意要和character-set-server对应
collation-server = utf8mb4_general_ci
#设置client连接mysql时的字符集,防止乱码
init_connect='SET NAMES utf8mb4'
#最大连接数
max_connections = 3000
#系统盘的70%-80%
innodb_buffer_pool_size=35G
skip-name-resolve

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

#大小写是否敏感参数(写1,一定要写 1 ,不要问为什么)
#lower_case_table_names=0  表名存储为给定的大小和比较是区分大小写的
#lower_case_table_names = 1  表名存储在磁盘是小写的,但是比较的时候是不区分大小写
#lower_case_table_names=2 表名存储为给定的大小写但是比较的时候是小写的
#unix,linux下lower_case_table_names默认值为 0 .Windows下默认值是 1 .Mac OS X下默认值是 2
lower_case_table_names = 1

#是否启用慢查询日志,1为启用,0为禁用
slow_query_log = 1
#指定慢查询日志文件的路径和名字,可使用绝对路径指定;默认值是'主机名_slow.log',位于datadir目录
slow_query_log_file = slow.log
#指定达到多少秒才算慢查询
long_query_time = 3

#MySQL在完成某些join(连接)需求的时候,为了减少参与join的“被驱动表”的读取次数以提高性能,需要使用到join buffer来协助完成join操作,当join buffer 太小,MySQL不会将该buffer存入磁盘文件而是将join buffer中的结果与需求join的表进行操作,然后清空join buffer中的数据,继续将剩余的结果集写入次buffer中
join_buffer_size = 512M
#MySQL读入缓冲区的大小
read_buffer_size = 64M
#MySQL的随机读缓冲区大小
read_rnd_buffer_size = 512M
#MySQL的顺序读缓冲区大小
sort_buffer_size = 32M

server-id=1
log-bin=mysql-bin
binlog_format=mixed
#清日志
relay_log=mysqld-relay-bin


[client]
port=3306
socket=/tmp/mysql.sock

#加入MySQL开机自启

cd /inspur/mysql
cp support-files/mysql.server /etc/init.d/mysql
chmod  +x /etc/init.d/mysql                       //添加可执行权限
chkconfig  --add  mysql                           //添加开机自启
chkconfig  --list                                 //查看自启是否添加成功

#环境变量

vim /etc/profile
export PATH=$PATH:/inspur/mysql/bin:/inspur/mysql/lib
#重新加载
source /etc/profile

#初始化(初始化之前先配置my.cnf)

cd /mysql/bin
./mysqld --user=mysql --initialize --basedir=/inspur/mysql --datadir=/inspur/mysql/data
#记录初始密码    2sRud7xV>sf+  

#重启mysql

service mysql start
systemctl restart mysql 

#修改密码

ALTER user 'root'@'localhost'IDENTIFIED WITH mysql_native_password BY 'g@PfWWFAS3Z3cVutxa<2vmBZ';

#给远程登录权限

#update user set host = '%' where user ='root';
CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'g@PfWWFAS3Z3cVutxa<2vmBZ';
grant all privileges on *.* to 'root'@'%'; 
flush privileges;

5.7修改密码

方法1: 用SET PASSWORD命令 
首先登录MySQL。 
mysql> set password for root@localhost = password('123');

grant all privileges on *.* to 'root'@'%'  with grant option;
flush privileges;
赋权之后用工具就可以改密码了

MySQL 远程连接慢

my.ini里面添加
[mysqld]
skip-name-resolve  # 一般我们只要这一项便可以 
skip-grant-tables

二、mysql主从搭建

1、my.cnf配置

(主)
server-id=1
log-bin=mysql-bin
binlog_format=mixed


#log-slave-updates=ON
binlog-do-db=run  #同步的数据库名称(可以不写,不写就是全库)
(从)
server-id=2
log-bin=mysql-bin 
binlog_format=mixed

#log-slave-updates=ON

2、主服务器配置;

#在主服务器上建一个账号

mysql> CREATE USER 'repl'@'172.16.128.42' IDENTIFIED WITH mysql_native_password BY 'inspur135?!';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'172.16.128.42';
mysq1> flush privileges;

#查看当前bin日志信息(记录后不要动主数据库)

SHOW MASTER STATUS;

记录内容:(master_log_file=“mysql-bin.000006” master_log_pos=156;) 下一步用

3、从服务器配置

mysq1>stop slave;
mysq1>reset slave;
mysq1> change master to master_host="172.16.128.41", master_user="repl",master_password="inspur135?!", master_log_file="mysql-bin.000001",master_log_pos=842;

#解释:CHANGE MASTER TO MASTER_HOST=‘主服务器的IP地址’,MASTER_USER’主服务器上用于同步数号’,MASTER_PASSWORD"同步账号的密码",MASTER_LOG_FILE=“bin日志的文件名”,MASTER_LOG_POS=bin Eposition值";

4、开启主从

start slave;
show slave status \G  //查看有没有启动成功

Slave_SQL_Running: no 问题解决

MariaDB [(none)]> stop slave;
MariaDB [(none)]> SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE;
MariaDB [(none)]> start slave;
MariaDB [(none)]> show slave status\G
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值