MYSQL
1.数据库安装
1.1.增加mysql组
`groupadd mysql`
1.2.建mysql用户,并加入到mysql组中
useradd –g mysql mysql
1.3.进行解压
tar -zxvf mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz
1.4.移动或改名文件和目录
mv mysql-8.0.11-linux-glibc2.12-x86_64/usr/local/mysql
进入目录
cd /usr/local/mysql
1.5.进入mysql目录初始化数据库
1.创建data文件夹
mkdir data
mkdir logs
2.安装mysql 依赖包
yum install -y libaio
yum -y install numactl
3.设置目录的所属用户为mysql
chown -R mysql /usr/local/mysql
3.切换用户
cd /usr/local/mysql
su mysql --console
初始化mysql数据库 这里指定的user用户为mysql 所以后面的mysql start 启动也要用mysql用户
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --lower_case_table_names=1 --console
记住初始化密码:root@localhost: Ee>tS;n5=FA_
1.6.进入mysql目录初始化数据库
su - root 修改mysql配置文件
vi /etc/my.cnf
配置以下内容:
[client]
port=3306
socket=/tmp/mysql.sock
[mysqld]
port=3306
user=mysql
socket=/tmp/mysql.sock
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
log-error=/usr/local/mysql/logs/error.log
pid-file=/usr/local/mysql/mysqld.pid
max_connections=500
transaction_isolation=READ-COMMITTED
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
lower_case_table_names=1
max_allowed_packet=2048M
default_authentication_plugin=mysql_native_password
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
#skip-grant-tables
[mysqld_safe]
open-files-limit=8192
log-error=/usr/local/mysql/error.log
pid-file=/usr/local/mysql/mysqld.pid
建立mysql服务
cd /usr/local/mysql
cp -a ./support-files/mysql.server /etc/init.d/mysql
chown mysql /etc/my.cnf
chown mysql /etc/init.d/mysql
chmod +x /etc/init.d/mysql
添加到系统服务
chkconfig --add mysql
配置全局环境变量
vi /etc/profile
在 profile 文件底部添加如下两行配置,保存后退出
export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib
export PATH
设置环境变量立即生效
source /etc/profile
启动mysql服务
su - mysql
service mysql start
登录mysql
mysql -uroot -p
输入密码:Ee>tS;n5=FA_
修改密码:
ALTER user 'root'@'localhost' IDENTIFIED BY 'root';
#对应的换成你自己的密码即可了。
设置可以远程登录
mysql>use mysql
mysql>update user set host='%' where user='root' limit 1;
刷新权限
mysql>flush privileges;
注:
问题:进入Navicat连接MySQL出现下面的2059界面
1.登陆数据库:输入mysql -uroot -p
2.输入use mysql; 出现Database changed
3.输入select user,host from user; 目的为了查看user的root 对应host是什么
我的对应为localhost4.修改加密规则:输入alter user ‘root’@‘%’ identified with mysql_native_password by ‘root’;
2.数据库主从数据
2.1修改配置文件(/etc/my.cnf)
[mysqld]
log-bin=mysql-bin
server-id=88
2.2重启数据库查看主数据库的当前状态
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 | 120 | | | |
+------------------+----------+--------------+------------------+-------------------+
3.从数据库服务器操作:
3.1修改配置文件(/etc/my.conf
server-id=89//不能与主数据库相同
3.2设置从服务器的信息并启动
复制代码
mysql> change master to
` `-> master_host = "192.168.1.88",//主数据库地址
` `-> master_port = 3306,//主数据库端口
` `-> master_user = "root",//主数据库的用户
` `-> master_password = "root",
` `-> master_log_file = "mysql-bin.000001",//主数据库的binlog开始位置的日志名称
` `-> master_log_pos = 120;//主数据库的binlog日志的Position属性
Query OK, 0 rows affected, 2 warnings (0.06 sec)
mysql> start slave;
Query OK, 0 rows affected (0.01 sec)
3.3查看是否配置成功
mysql> show slave status;
\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* 1. row \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
` `Slave_IO_State: Connecting to master
` `Master_Host: 192.168.1.88:3306
` `Master_User: root
` `Master_Port: 3306
` `Connect_Retry: 60
` `Master_Log_File: mysql-bin.000001
` `Read_Master_Log_Pos: 120
` `Relay_Log_File: mysqld-relay-bin.000001
` `Relay_Log_Pos: 4
` `Relay_Master_Log_File: mysql-bin.000001
` `Slave_IO_Running: Yes //主要查看这两个指标状态
Slave_SQL_Running: Yes //主要查看这两个指标状态
到这里主从配置就配置完了!
可能遇到的问题:
在2.3那一步的时候不一定就能够正好 “Slave_IO_Running” 和 “Slave_SQL_Running” 的值都是
YES 这个时候可以这么检查下 当 “Slave_IO_Running” 的值为 Connecting
时是因为slave数据库服务器去访问 master数据库服务器的 bin-log 时失败导致的,
1.这时候应该检查 2.2中设置的参数是不是正确,
2.查看主数据库用户的host权限数据,是否允许从数据库访问
select user,host from user;
+------------------+---------------+
| user | host |
+------------------+---------------+
| root | % |//表示所有ip都可以访问
| slave_admin | 192.168.25.85 |
| mysql.infoschema | localhost |//表示只有本地可以访问
| mysql.session | localhost |
| mysql.sys | localhost |
+------------------+---------------+
3.要保持主从的数据库保持一致