linux 下mysql解压缩安装(主备复制)

2018-12-18  本文已影响0人  小刚996

1:第一步先下载

mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz

2:解压安装文件

tar -xvf  mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz

这个解压缩后可以根据个人情况选择安装位置

例如我的:/app

我会mv  mysql-5.7.20-linux-glibc2.12-x86_64  /app/mysql

3:添加用户组和用户

#添加用户组

groupadd mysql

#添加用户mysql到用户组mysql

useradd -g mysql mysql

4:安装

进入安装文件目录 

cd  /app/mysql

创建数据目录

mkdir data

先把安装文件归属给mysql用户

chown -R mysql:mysql ./

cp support-files/mysql.server /etc/init.d/mysqld

chmod 755 /etc/init.d/mysqld

#修改启动脚本

vi /etc/init.d/mysqld

#修改项:

basedir=/app/mysql/

datadir=/app/mysql/data

修改数据库配置文件

vi /etc/my.cnf

修改对应的信息

#skip-grant-tables

collation_server = utf8_general_ci

character_set_server = utf8

event_scheduler=ON

max_connections=1000

lower_case_table_names=1

port=3308

datadir=/app/mysql/data

socket=/app/mysql/mysql.sock

user=mysql

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

初始化数据库

5.7以前执行一下命令

./scripts/mysql_install_db --basedir=/app/mysql --datadir=/app/mysql/data --user=mysql 

5.7以后版本

bin/mysqld --initialize  --basedir=/app/mysql --datadir=/app/mysql/data --user=mysql 

mysqld --initialize  --basedir=/app/mysql --datadir=/app/mysql/data --user=mysql

#加入环境变量,编辑 /etc/profile,这样可以在任何地方用mysql命令了

export PATH=$PATH:/app/mysql/bin

source /etc/profile

启动mysql

service mysqld start

常见问题,执行完后登录提示root密码过期无法登录

可以先修改 

vi /etc/my.cnf 

添加如下语句

skip-grant-tables

启动数据库

mysql  -u root -p直接按两次回车

use mysql

update user set authentication_string=password("123456")where user="root";

update user set host = '%',password_expired = 'N' where user='root';

flush privileges;

如果出现Can't find messagefile '/usr/share/mysql/errmsg.sys

vi /etc/my.cnf 

添加如下语句

language        = /app/mysql/share/english            #此处为language配置项

如果出现 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (

添加软连接的形式

ln –s /app/mysql/mysql.sock /var/lib/mysql

mysql8.0 加上软连接也不行 可以选择直接指定sock文件路径

 

mysql -uroot -p -S /app/mysql/mysql.sock 

8.0版本如果出现

ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib64/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory

可以先设置一下配置文件

将default_authentication_plugin=caching_sha2_password改为default_authentication_plugin=mysql_native_password

主备复制

1:分别root登陆mysql 执行如下命令

   增加复制用户并授权(主备都在172.10.20.*网段,为了方便主备切换,两边都建立)

  GRANT  REPLICATION SLAVE,REPLICATION CLIENT on *.* to repl@'172.10.20.%' identified by '123456';

2:配置/etc/my.cnf

第一服务器(主 172.10.20.10

log_bin=mysql-bin  

server_id=1 

第二个服务器(备 172.10.20.11

log_bin=mysql-bin  

server_id=2  

read_only=1  

3:重启两个mysql服务器

4:登陆主(root)执行

show master status;

显示

File: mysql-bin.000001 

Position: 154

5:登陆备(root) 执行

测试mysql -urepl -h172.10.20.11-p9O*l4r3ZuOR/8A  -P3308是否能连接到主库,不能需要检查防火墙或者/etc/my.cnf是否有访问限制,修改配置

mysql -uroot登陆本地库执行:

CHANGE MASTER TO   

 MASTER_HOST='172.10.20.10', 

 MASTER_USER='repl', 

 MASTER_PASSWORD='123456', 

 MASTER_LOG_FILE='mysql-bin.000001', 

 MASTER_LOG_POS=1434, 

 MASTER_PORT=3308;

启动主从复制

start slave;

查看状态

show slave status;

如果出现显示mysql-bin  文件显示乱码,可以检查

/etc/my.cnf   

log_bin=mysql-bin   

这个配置项后面是否有特殊字符或者空格之类的

新建mysql用户

CREATE USER 'test'@'%' IDENTIFIED BY '123456'; 

GRANT ALL ON test.* TO 'test'@'%'; 

上一篇下一篇

猜你喜欢

热点阅读