发布网友 发布时间:2022-04-07 21:11
共2个回答
懂视网 时间:2022-04-08 01:33
版本:mysql-advanced-5.6.23-linux-glibc2.5-x86_64
具体可以参考目录下的INSTALL-BINARY文件
#安装mysql,将mysql压缩解压到/usr/local
tar zxvf mysql-advanced-5.6.23-linux-glibc2.5-x86_64.tar.gz -C /uar/local/mysql
cd /usr/local
ln -s mysql-advanced-5.6.23-linux-glibc2.5-x86_64 mysql
cd mysql
#添加mysql用户和群组
groupadd mysql
useradd -r -g mysql mysql
#修改相关目录和文件属主和所属群组
chown -R mysql .
chgrp -R mysql .
或者:chown -R mysql:mysql .
#将目录属主更改为root,避免mysql用户将目录删除
chown -R root .
chown -R mysql data
#使用mysql用户权限来初始化数据库
scripts/mysql_install_db --user=mysql --datadir=/data --keep-my-cnf --no-defaults
#会提示缺少perl-modules
#FATAL ERROR: please install the following Perl modules before executing scripts/mysql_install_db
yum -y install perl-Module-Install.noarch
#缺少依赖包libaio
#error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
yum -y install libaio-devel
#将mysql添加为服务
cp support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
#将mysql的bin目录加入到PATH环境变量
#在/etc/profile最后面添加
PATH=$PATH:/usr/local/mysql/bin
source /etc/profile
#脚本初始化已经添加mysqld脚本,如果没有直接cp /etc/init.d/mysqld
/etc/rc.d/init.d/mysqld
#启动mysql
/usr/local/mysql/bin/mysqld_safe &
#更改mysql root密码提示
#error: ‘Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘
/usr/local/mysqladmin -u root -p password --socket=/var/lib/mysql/mysql.sock
#或者
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
#在/etc/my.cnf 文件socket参数指定为/tmp/mysql.sock
socket=/tmp/mysql.sock
#启动mysql
mysqld_safe --defaults-file=/etc/my.cnf --datadir=/data --pid-file=/tmp/mysql.pid&
#查看mysql启动情况
ps aux | grep mysql
#查看mysql是否在监听端口3306
lsof i:3306
#如图:
#mysql已经启动成功
#待补充
#给192.168.137.31这台主机以用户名slave和密码love从主服务器进行同步复制
#远程连接错误
#ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘192.168.137.30‘ (113)
#查看错误113
perrot 113
#由于启用防火墙所致,centos7防火墙默认是firewalld
systemctl stop firewalld.service
systemctl disable firewalld
#关闭开启防火墙前后
#默认数据库:
#创建数据库d1和d2以及表t1和t2。
create database d1;
create database d2;
use d1;
create table t1(id int,name char(50));
insert into t1 value(1,‘t1name1‘);
insert into t1 value(2,‘t1name2‘);
use d2;
create table t2(id int,name char(50));
insert into t2 value(1,‘t2name1‘);
insert into t2 value(2,‘t1name2‘);
#备份数据库d1和d2表数据,-l会将所有表锁定,备份完成自动解锁,-F备份完成会重新生成binlog日志:
mysqldump -l -F -u root -p d1 >data/d1.sql
mysqldump -l -F -u root -p d2 >data/d2.sql
#备份所有数据库,包括自带的数据库:
mysqldump --all-databases -l -F -u root -p >data/all.sql
#还原到从服务器:
scp data/d*.sql root@192.168.137.31:/usr/local/mysql/data
#在从服务器执行:
mysql -u root -p
create database d1;
create database d2;
use d1;
source /usr/local/mysql/data/d1.sql
use d2;
source /usr/local/mysql/data/d2.sql
#待补充
#5.1.7版本开始不支持master-host、master-user、master-password等参数,在配置从服务器时注意需要在从服务器执行:
change master to master_host=‘主服务器IP‘,master_user=‘同步使用用户名(slave)‘,master_password=‘同步用户对应密码(love)‘;
start slave;
#重新生成binlog日志,假如当前binlog日志为mysql-bin.000004,新生成的binlog日志就是mysql-bin.000005
flush logs;
#重置binlog日志,即binlog日志会从原点开始记录,如双从mysql-bin.000001开始
reset master;
#查看slave状态
show slave statusG;
#可以使用mysqlbinlog来查看binlog日志
mysqlbinlog /data/mysql-bin.000004
#安装方法与主服务器一样,不重复说明。
#修改root密码
mysqladmin -u root -p password
change master to master_host=‘192.168.137.30‘,master_user=‘slave‘,master_password=‘love‘;
start slave;
show slave statusG;
#由于之前做了从服务器中复制,并且重置了主和从服务器binlog日志,所以需要以下操作
#在主服务器重置binlog日志,生产环境切勿随便重置binlog日志,重置之后会删除起点之后的所有日志文件
#为方便查看同步效果,如果主服务器已经手动建立过数据库的,应该将它删除,若不删除又不把手动建立的
#数据库备份还原到从服务器,当在主服务器对这些数据库进行增删修时,从服务器由于没有这些数据库,就会报错
#将测试数据库删除,并重置日志文件
drop database d1;
drop database d2;
reset master;
#查看主服务器log_pos位置起点,以便在从服务器设定同步起点,
show master status;
#起点变成120
#从服务器
#配置文件
server_id:必须唯一
replicate-do-db:指定需要同步的数据库,一个数据库一行
replicate-ignore-db:指定不需要同步的数据库,一个数据库一行
#重置从服务器日志并开启复制
reset master;
stop slave;
change master to master_host=‘192.168.137.30‘,master_user=‘slave‘,master_password=‘love‘;
start slave;
#看到Slave_IO_Running和Slave_SQL_Running状态显示为Yes,可以看出与主服务器连接正常
Slave_IO_Running:负责从主服务器将binlog复制到本地,YES表示复制状态正常,NO表示复制状态不正常或者是无法从主服务器复制。
Slave_SQL_Running:负责从复制到本地的binlog日志中读取positon点和sql语句并执行一遍,并且会将自身操作日志写入到relaylog中继日志中。
Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
#从服务器正等待主服务器进行增、删、修操作,一旦主服务器进行这些操作,从服务器在刷新时间内就会根据从主服务器的binlog来同步数据
#Replicate_Ignore_DB显示的是忽略同步的数据库
Replicate_Ignore_DB: mysql,test,information_schema,ignoredb
#需要在my.cnf配置文件添加,一行指定一个数据库
replicate-ignore-db=mysql
replicate-ignore-db=test
replicate-ignore-db=information_schema
replicate-ignore-db=ignoredb
#将复制事件写入到自己的二进制日志文件,中继日志和自己binlog日志默认值开启并且存放在/var/lib/mysql
log-slave-updates
#数据库存放位置可以通过datadir参数来更改
datadir=/data
#日志存放位置可以通过log-bin参数加上绝对路径来修改
log-bin=/binlog/mysql-bin
#如果在启动过mysql之后再修改数据目录存放路径,要先将pid文件、中继日志文件和数据库文件复制到修改后目录,不然在启动mysql总会提示找不到pid文件,而无法启动成功,一般都会将binlog文件和数据库文件分开,避免因磁盘损坏而无法使用binlog恢复数据
#在主服务器上重新建立数据库d1和d2以及t1和t2,可以在从服务器看到很快就会将这两个数据库同步过来
本文出自 “爱就行动” 博客,请务必保留此出处http://1055745601.blog.51cto.com/5003160/1659226
mysql服务器(一)
标签:mysql服务器(一)
热心网友 时间:2022-04-07 22:41
1