MySQL5.6.50二进制安装

安装

一.创建目录

ln -s mysql-5.6.50-linux-glibc2.12-x86_64/ mysql
mkdir /opt/mysql/data          #数据目录
mkdir /opt/mysql/log           #日志目录
mkdir /opt/mysql/etc          #配置文件目录

二.创建用户

groupadd mysql
useradd -r -g mysql mysql

三、创建my.cnf

创建my.cnf文件的目的主要是为了初始化时要用到它里面的一些配置

cp support-files/my-default.cnf /etc/my.cnf
​
#增加以下内容
vim /etc/my.cnf
user = mysql
basedir = /opt/mysql
datadir = /opt/mysql/data
socket = /tmp/mysql.sock
server_id = 1
port = 3306
log-error=/opt/mysql/log/error.log
log_bin=/opt/mysql/log/binlog
[mysql]
socket = /tmp/mysql.sock
​
touch /opt/mysql/log/error.log

注意:如果系统中其它目录下还存在my.cnf文件请删除,可以用find查找一下

四、安装

1.安装插件

apt-get install libaio1

2.初始化

cd /opt/mysql
scripts/mysql_install_db --user=mysql --defaults-file=/etc/my.cnf --basedir=/opt/mysql --datadir=/opt/mysql/data --innodb_undo_tablespaces=3 --explicit_defaults_for_timestamp
​
chown -R mysql:mysql /opt/mysql-5.6.50-linux-glibc2.12-x86_64

3.配置mysql启动服务

cp support-files/mysql.server /etc/init.d/mysql
vim /etc/init.d/mysql
basedir=/opt/mysql
datadir=/opt/mysql/data
​
chmod +x /etc/init.d/mysql 

4.配置环境变量

vim /etc/profile.d/mysql.sh
export PATH=/opt/mysql/bin:$PATH
source /etc/profile.d/mysql.sh

注意:如果你当前安装用户是一个sudo用户,那么你前面的一些操作都需要加上sudo,但是source这里就不需要加了

5.启动服务

cd /etc/init.d/
./mysql start
​
systemctl status mysql
systemctl start mysql

注意:如果当前用户没有权限,这里需要加上sudo启动

6.登入mysql

mysql -uroot
​
#修改密码
mysqladmin -uroot password enkaifeng_2023
​
#root远程登录
#会删表,可能是bug
use mysql;
update user set Host='%' where User='root';              #ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY' 不予理会
flush privileges;
​
#上面的有毒
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'enkaifeng_2023' WITH GRANT OPTION;        #mysql5.7及以前版本
CREATE USER 'root'@'%' IDENTIFIED BY 'root';grant all privileges on *.* to 'root'@'%' ;            #mysql 8
flush privileges;
​
use mysql
select user,host from user;
SELECT User, Password, Host FROM user;

主从复制

master

[root@master ~]#vim /etc/my.cnf
[mysqld]
log_bin=/opt/mysql/log/binlog
server-id=8                                            #主机IP的最后一位数
[root@master ~]#systemctl restart mysql
​
[root@master ~]#mysql
mysql> SHOW MASTER LOGS;                                                    #查看二进制文件的开始位置156
+---------------+-----------+-----------+
| Log_name      | File_size | Encrypted |
+---------------+-----------+-----------+
| binlog.000001 |     156   | No        |
+---------------+-----------+-----------+
1 row in set (0.00 sec)
mysql> create user repluser@'10.0.0.%' identified by 'enkaifeng2023';              #创建用户,账号,先查看日志位置再创建账号
mysql> grant replication slave on *.* to repluser@'10.0.0.%';               #授权

slave

[root@slave ~]#vim /etc/my.cnf
[mysqld]
server-id=28                        #主机IP的最后一位数
read-only=on                        #只读
relay_log=relay-log                 #relay log的文件路径,默认值`hostname`-relay-bin
relay_log_index=relay-log.index     #默认值`hostname`-relay-bin.index
​
mysql> help CHANGE MASTER TO;              #查看语法
mysql> CHANGE MASTER TO
​
  MASTER_HOST='10.0.0.8',                  #主服务器IP
  MASTER_USER='repluser',                  #主服务器复制账号
  MASTER_PASSWORD='123456',                #账号密码
  MASTER_PORT=3306,                        #端口
  MASTER_LOG_FILE='binlog.000001',         #二进制文件
  MASTER_LOG_POS=156,                      #二进制文件的起始位置
  MASTER_CONNECT_RETRY=10;                 #重试时间连接
​
​
mysql> show slave status\G;              #查看从节点信息
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                   Master_Host: 10.0.0.8                               #主节点主机
                   Master_User: repluser                               #账号
                   Master_Port: 3306                                   #端口
                 Connect_Retry: 60
               Master_Log_File: mariadb-bin.000002                     #二进制文件
           Read_Master_Log_Pos: 156                                    #二进制位置
               Relay_Log_File: mariadb-relay-bin.000002                #复制到本机的日志文件
                 Relay_Log_Pos: 4                                      #二进制位置
         Relay_Master_Log_File: mariadb-bin .000002
             Slave_IO_Running: NO                                      #IO线程
             Slave_SQL_Running: NO                                     #SQL线程
         Seconds_Behind_Master: 0                                      #复制的延迟时间,0秒
mysql> start slave;                      #启动线程,会同时开启IO线程和SQL线程
mysql> show processlist;                 #查看线程
#复制的延迟时间:见下图
mysql> flush privileges;                 #刷新权限

 

在从节点清除信息CHANGE MASTER TO

注意:以下都需要先 STOP SLAVE

RESET SLAVE;            #从服务器清除master.info ,relay-log.info, relay log ,开始新的relay log
RESET SLAVE ALL;        #清除所有从服务器上设置的主服务器同步信息,如HOST,PORT, USER和 PASSWORD等              

停止从属服务器

stop slave;
RESET SLAVE ALL;

备份还原数据库

mysqldump -uroot -p<密码>  hellodb students > /data/bakup/hellodb.sql       #导出库数据
CREATE DATABASE 'hellobd'                                                   #创建数据库
mysql hellodb < /data/backu/hellodb.sql                                     #还原数据库的数据

MYSQL查看操作日志

查看日志状态命令:

mysql> SHOW VARIABLES LIKE 'gen%';                               #未开启状态
+------------------+------------------------------+
| Variable_name    | Value                        |
+------------------+------------------------------+
| general_log      | OFF                          |
| general_log_file | /opt/mysql/data/ecs-886c.log |
+------------------+------------------------------+

mysql> SET GLOBAL general_log=ON;                                #开启
Query OK, 0 rows affected (0.00 sec)

mysql> SHOW VARIABLES LIKE 'gen%';
+------------------+------------------------------+
| Variable_name    | Value                        |
+------------------+------------------------------+
| general_log      | ON                           |
| general_log_file | /opt/mysql/data/ecs-886c.log |
+------------------+------------------------------+
2 rows in set (0.00 sec)

修改记录日志格式

mysql> SHOW VARIABLES LIKE 'log_output';       #查看格式
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_output    | FILE  |                      #文件形式
+---------------+-------+
1 row in set (0.00 sec)


mysql> SET GLOBAL log_output='TABLE';         #修改为表格
mysql> SHOW VARIABLES LIKE 'log_output';       #查看格式
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_output    | TABLE |                      #文件形式
+---------------+-------+
1 row in set (0.00 sec)

mysql> SELECT * FROM mysql.general_log;       #通过命令查看日志


#使用数据库表记录操作日志会增加数据的压力,因此建议使用文件记录操作日志
mysql> SET GLOBAL log_output='FILE';
mysql> TRUNCATE TABLE mysql.log_output;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值