卸載系統自帶的版本。
這裏以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
登陸測試
[root@svr ~]# 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 //不解釋
至此從服務器設置完成。