卸载系统自带的版本。
这里以MySQL-5.5.28-1为版本
为了简单,RPM方式安装:
rpm -ivh MySQL-server-5.5.28-1.linux2.6.x86_64.rpm
rpm -ivh MySQL-client-5.5.28-1.linux2.6.x86_64.rpm
#mysql
mysql>update mysql.user set password="chengshan" where user="root"; //
mysql>delete from mysql.user where user=‘‘; //删除匿名用户
mysql>select user,host from mysql.user;
mysql>delete from mysql.user where host=‘127.0.0.1‘;
mysql>delete from mysql.user where host=‘localhost‘;
mysql>create user ‘zcs‘@‘127.0.0.1‘ identified by ‘chengshan‘;
mysql>grant all privileges on *.* to ‘root‘@‘%‘ identified by ‘chengshan‘ with grant option;
mysql>grant all privileges on *.* to ‘zcs‘@‘%‘ identified by ‘chengshan‘ with grant option;
mysql>flush privileges;
mysql>quit
登陆测试
[[email protected] ~]# mysql -u root -p
Enter password:
1.修改相关配置文件:
#cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
#vi /etc/my.cnf
在[client]最后增加
default-character-set=utf8
在[mysqld]最后增加
lower_case_table_names=1
transaction-isolation=READ-COMMITTED
event-scheduler=1
max_connections=2000
2.启动
/etc/init.d/mysql start
#netstat -anlt
3.停止
/etc/init.d/mysql stop
4.重新启动
/etc/init.d/mysql restart
5.设置自动启动
/sbin/chkconfig mysql on
二两台服务器都装好后,进行双机热备的配置(主从关系)
约定环境:两台服务器的主机名最好不一样,如一个是db1(主),一个是db2(从)。
可以通过修改/etc/sysconfig/network实现
两台数据库root密码为chengshan
1 进入主服务器
mysql –u root –p
密码:chengshan
mysql>下输入:show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000002 | 107 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
如果提示为空则需要在/etc/my.cnf 下的mysqld中添加
log-bin=mysql-bin
server-id=10
注意看里面的参数,特别前面两个File和Position,在从服务器(Slave)配置主从关系会有用到的。
创建同步用户
grant replication slave on *.* to [email protected] identified by ‘123456‘;
//创建用户user1密码为123456,指定IP为从服务器可以访问的。
flush privileges;
修改/etc/my.cnf
在[mysqld]下修改即可:
[mysqld]
server-id = 1
log-bin=mysql-bin //其中这两行是本来就有的,可以不用动,添加下面两行即可
binlog-do-db = opts2 //指定需要被同步的数据库名称如opts2
binlog-ignore-db = mysql //指定不需要被同步的数据库名称如mysql自带的mysql或其他的数据库,如果不指定这两条默认全部都同步。
修改好后
service mysql restart //重启mysql服务,不解释。如果成功则没问题。
主服务器配置完毕。
2 进入从服务器
首先修改/etc/my.cnf配置
[mysqld] //在[mysqld]段后修改
server-id = 2 //修改1为2
log-bin=mysql-bin //默认配置,开启日志记录,不用改
replicate-do-db = opts2 //指定需要去主服务器发起同步的数据库名如opts2
replicate-ignore-db = mysql,information_schema,performance_schema
// 执行不需要进行同步的数据库名
service mysql restart //不解释
用change mster 语句指定同步位置
mysql –u root –p
密码:chengshan
mysql>
创建同步用户
grant replication slave on *.* to [email protected] identified by ‘123456‘;
//创建用户user2密码为123456,指定IP为主服务器可以访问的。其实这句话可以不用打,这句话是给互相备份用的(主-主关系),不过配上也没事,没有设置权限。
mysql>stop slave; //先停步slave服务线程,这个是很重要的,如果不这样做会造成以下操作不成功。
mysql>change master to
->master_host=‘192.168.0.90‘,
->master_user=‘user1‘,
->master_password=‘123456‘,
->master_log_file=‘mysql-bin.000003 ‘,
->master_log_pos=107;
注:master_log_file, master_log_pos由主服务器(Master)查出的状态值中确定。也就是刚刚叫注意的。master_log_file对应File, master_log_pos对应Position。
mysqlbinlog mysql-bin.000003 > 0.txt
回车后,如成功会有OK提示,如果不成功则要重新设置slave。指令如下
mysql>stop slave;
mysql>reset slave;
之后停止slave线程重新开始。成功后,则可以开启slave线程了。
flush privileges;
mysql>start slave; //重新启动
mysql>show slave status\G; //查看从服务器状态
# service mysql restart //不解释
至此从服务器设置完成。