mysql编译卡主_mysql 编译安装以及主从设定
1. 下載MYSQL源碼包至/home/mysql_home。
我下載下來(lái)的源碼包文件名為:mysql-5.0.45.tar.gz
2. 在/home/mysql_home下,解壓。
tar zxvf mysql-5.0.45.tar.gz
3. 進(jìn)入/home/mysql_home/mysql-5.0.45/,執(zhí)行:
./configure --with-tcp-port=33007 --localstatedir=/home/mysqldb/mysql_jj//jjdata?--with-unix-socket=/home/mysqldb/mysql_jj/mysql_jj.sock --prefix=/home/mysqldb/mysql_jj? --with-big-tables? --with-charset=gbk --with-extra-charsets=all
[命令參考值,來(lái)源于網(wǎng)絡(luò)
--prefix=/usr/local/mysql5
--localstatedir=/var/lib/mysql5 --with-comment=Source
--with-server-suffix=-Community
--with-mysqld-user=mysql
--without-debug
--with-big-tables
--with-charset=gbk --with-collation=gbk_chinese_ci --with-extra-charsets=all
--with-pthread
--enable-static
--enable-thread-safe-client
--with-client-ldflags=-all-static
--with-mysqld-ldflags=-all-static
--enable-assembler
--without-innodb
--without-ndb-debug
]
注意:(注意:!!!在安裝第二個(gè)數(shù)據(jù)庫(kù)時(shí)候,雖然在./configure后加上了--localstatedir/home/mysqldb/mysql_jj//jjdata但是并未在/home/mysqldb/mysql_jj下產(chǎn)生jjdata目錄,所以我們要在源碼包編譯安裝完成之后先檢查一下是否有這個(gè)目錄,如果沒(méi)有的話一定要手動(dòng)創(chuàng)建一個(gè)命令:# mkdir /home/mysqldb/mysql_jj//jjdata再執(zhí)行第八步驟。)
make
make install
configure命令是修改默認(rèn)的服務(wù)器端口和安裝目錄,數(shù)據(jù)庫(kù)編碼等參數(shù)。
然后安裝無(wú)錯(cuò)后,
4. ?bin/mysql_install_db --user=mysql
(在確保第四步驟正確完成之后,在執(zhí)行本步驟時(shí),如果正確的話,在/home/mysqldb/mysql_jj/jjdata下將會(huì)產(chǎn)生相應(yīng)的數(shù)據(jù)庫(kù)文件。)
5. chown -R root:mysql . //設(shè)置權(quán)限,注意后面有一個(gè) "."
6 chown -R mysql /home/mysqldb/mysql_jj //設(shè)置 mysql 目錄權(quán)限
7. chgrp -R mysql . //注意后面有一個(gè) "."
8. cp share/mysql/my-huge.cnf /etc/my_jj.cnf
9. cp share/mysql/mysql.server /etc/rc.d/init.d/mysql_jj //開(kāi)機(jī)自動(dòng)啟動(dòng) mysql。
10. chmod 755 /etc/rc.d/init.d/mysql_jj
11. chkconfig --add mysql_jj
以下是安裝第二個(gè)數(shù)據(jù)庫(kù)時(shí),對(duì)啟動(dòng)文件mysql_jj和配置文件my_jj.cnf做出的必要修改。
===================================================================================
/etc/rc.d/init.d/mysql_jj
修改下面的內(nèi)容:
1.datadir=/var/lib/mysql_jj
2.conf=/etc/my5.cnf
3.把"$bindir/mysqld_safe --datadir=$datadir --pid-file=$server_pid_file $other_args >/dev/null 2>&1 &"替換為(雙引號(hào)中的)
"$bindir/mysqld_safe --defaults-file=/etc/my_jj.cnf --datadir=$datadir --pid-file=$server_pid_file $other_args >/dev/null 2>&1 &"(雙引號(hào)中的)
===================================================================================
/etc/my_jj.cnf
修改下面的內(nèi)容:
port = 3307 ###修改相關(guān)的端口
socket文件生成路徑
把[client]和[mysqld]中的port號(hào)都改成3307,
socket = /tmp/mysql.sock改成socket = /tmp/mysql_jj.sock
[client]
#password = your_password
port = 3307
socket = /tmp/mysql_jj.sock
# Here follows entries for some specific programs
# The MySQL server
[mysqld]
port = 3307
socket = /tmp/mysql_jj.sock
==================================================================================
17# /etc/rc.d/init.d/mysql_jj start //啟動(dòng) MySQL
18# bin/mysqladmin -u root password "password_for_root" //修改root密碼
主從
mysql服務(wù)器的主從配置,本來(lái)是一件很簡(jiǎn)單的事情,無(wú)奈不是從零開(kāi)始,總是在別人已經(jīng)安裝好的mysql服務(wù)器之上 ,這就會(huì)牽扯到,mysql的版本,啟動(dòng)文件,等一些問(wèn)題。
不過(guò)沒(méi)關(guān)系,先問(wèn)清楚兩點(diǎn)
1、mysql配置文件my.cnf的位置
2、如何啟動(dòng)、停止mysql,找好啟動(dòng)文件
假設(shè)有兩臺(tái)機(jī)器,已經(jīng)安裝好了mysql(盡量同版本,且兩臺(tái)機(jī)器同一網(wǎng)絡(luò),可以ping通)
有朋友說(shuō):“從服務(wù)器,不能低于主服務(wù)器的版本”,不過(guò)我是低于的,沒(méi)有出現(xiàn)問(wèn)題。
主機(jī)A: 192.168.1.100
從機(jī)B:192.168.1.101
可以有多臺(tái)從機(jī)
1、先登錄主機(jī) A
mysql>GRANTREPLICATION SLAVEON *.* TO ‘backup’@’192.168.1.101‘ IDENTIFIED BY ‘123456’;
賦予從機(jī)權(quán)限,有多臺(tái)叢機(jī),就執(zhí)行多次
2、 打開(kāi)主機(jī)A的my.cnf,輸入
server-id?????????????? = 1??? #主機(jī)標(biāo)示,整數(shù)
log_bin???????????????? = /var/log/mysql/mysql-bin.log?? #確保此文件可寫
read-only?????? =0? #主機(jī),讀寫都可以
binlog-do-db??? =test?? #需要備份數(shù)據(jù),多個(gè)寫多行
binlog-ignore-db=mysql #不需要備份的數(shù)據(jù)庫(kù),多個(gè)寫多行
3、打開(kāi)從機(jī)B的my.cnf,輸入
server-id?????????????? = 2
log_bin???????????????? = /var/log/mysql/mysql-bin.log
master-host???? =192.168.1.100
master-user???? =backup
master-pass???? =123456
master-port???? =3306
master-connect-retry=60 #如果從服務(wù)器發(fā)現(xiàn)主服務(wù)器斷掉,重新連接的時(shí)間差(秒)
replicate-do-db =test #只復(fù)制某個(gè)庫(kù)
replicate-ignore-db=mysql #不復(fù)制某個(gè)庫(kù)
4、同步數(shù)據(jù)庫(kù)
有多種方法,我說(shuō)最笨的一種,先mysqldump導(dǎo)出主機(jī)A的數(shù)據(jù)test為 test.sql
然后在,從機(jī)B上建立數(shù)據(jù)庫(kù)test,mysql導(dǎo)入 test.sql到test庫(kù)中
5、先重啟主機(jī)A的mysql,再重啟從機(jī)B的mysql
6、驗(yàn)證
在主機(jī)A中,mysql>show master status\G;
在從機(jī)B中,mysql>show slave status\G;
能看到大致這些內(nèi)容
File: mysql-bin.000001
Position: 1374
Binlog_Do_DB: test
Binlog_Ignore_DB: mysql
可以在主機(jī)A中,做一些INSERT, UPDATE, DELETE 操作,看看主機(jī)B中,是否已經(jīng)被修改
以下是一些其他朋友寫的,我也做了參考
http://www.ningoo.net/html/2007/mysql_replication_configuration.html
http://leftleg.hzpub.com/post/645/
報(bào)錯(cuò)處理方案:
1.確定log_bin 有權(quán)限操作? 可以用chmod 777
2.change master to master_host='*.*.*.*',master_user='backup',master_password='123456',master_log_file='mysql-bin.000015' ,master_log_pos=443;
其中的兩個(gè)文件從主機(jī)的 show master status? 中獲取
總結(jié)
以上是生活随笔為你收集整理的mysql编译卡主_mysql 编译安装以及主从设定的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: centos mysql 连接数_Cen
- 下一篇: mysql inodb主键bug_MyS