基于mysql多實(shí)例安裝的深入解析
相信大多數(shù)人都遇到過多實(shí)例安裝mysql吧,相信大多數(shù)人只要找到一份多實(shí)例安裝的教程就會很容易搞定了,但是越是順利的安裝過程越讓我們不安,為什么呢,當(dāng)我們在按照教程一步一步來的時候,你知道每句話的意思的目的嗎?出現(xiàn)錯誤以后的我們又該怎么辦呢?現(xiàn)在我為大家展示我的安裝過程,各種糾結(jié),各種錯誤。
首先說明一個場景:我的電腦是ubuntu系統(tǒng),之前apt-get自動安裝過mysql。這也是出現(xiàn)錯誤最多的原因之一。
下面是我的安裝過程,其中充斥著各種錯誤:
6.mkdir mysql
7.groupadd mysql
8.useradd -r -g mysql mysql
# make clean
# rm -f CMakeCache.txt
# rm -rf /etc/my.cnf
9.cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DMYSQL_DATADIR=/usr/local/mysql/data -DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all
-DENABLED_LOCAL_INFILE=1
make
make install
這個表示我們的mysql源碼安裝已經(jīng)完成了,現(xiàn)在要做就是初始化用戶了,也就是多實(shí)例中最重要的一部了,以后的每一步都要注意命令執(zhí)行后的結(jié)果:
cd /usr/local/mysql
chown -R root:mysql .
chown -R mysql:mysql data
11.cp support-files/my-medium.cnf /etc/my.cnf
12.cd /usr/local/mysql
<SPAN style="LINE-HEIGHT: 22px; FONT-FAMILY: Verdana, 宋體, Helvetica, sans-serif; FONT-SIZE: 14px">scripts/mysql_install_db </SPAN><BR style="LINE-HEIGHT: 22px; FONT-FAMILY: Verdana, 宋體, Helvetica, sans-serif; FONT-SIZE: 14px"><SPAN style="LINE-HEIGHT: 22px; FONT-FAMILY: Verdana, 宋體, Helvetica, sans-serif; FONT-SIZE: 14px">--defaults-file=/usr/local/mysql/data_3308/my.cnf </SPAN><BR style="LINE-HEIGHT: 22px; FONT-FAMILY: Verdana, 宋體, Helvetica, sans-serif; FONT-SIZE: 14px"><SPAN style="LINE-HEIGHT: 22px; FONT-FAMILY: Verdana, 宋體, Helvetica, sans-serif; FONT-SIZE: 14px">--datadir=/usr/local/mysql/data_3308/</SPAN>
上面的mysql_install_db這個命令就是來進(jìn)行初始化新用戶。這里要注意命令執(zhí)行后的結(jié)果,第一次的時候我的執(zhí)行結(jié)果是這樣的:
root@zhou:/usr/local/mysql# scripts/mysql_install_db --defaults-file=/usr/local/mysql/data_3307/my.cnf --datadir=/usr/local/mysql/data_3307/
Installing MySQL system tables...
130107 10:25:47 [ERROR] COLLATION 'latin1_swedish_ci' is not valid for CHARACTER SET 'utf8'
130107 10:25:47 [ERROR] Aborting
130107 10:25:47 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete
這里可以看出已經(jīng)出現(xiàn)了錯誤,原因是什么,大家應(yīng)該可以看明白了,自己太馬虎了。導(dǎo)致自己重新執(zhí)行了一次cmake
然后重新進(jìn)行上面的命令了。直到我們看到這樣的結(jié)果:表示初始化成功了,恭喜你下面可以進(jìn)行下面的操作了。
root@zhou:/usr/local/mysql# mysql_install_db --user=mysql --defaults-file=/usr/local/mysql/data3307/my.cnf --datadir=/usr/local/mysql/data3307/
Installing MySQL system tables...
OK
Filling help tables...
OK
這時他會在我們的data目錄中生成一些mysql庫啊和test庫等這些基本信息。
對了一定要注意了,權(quán)限的分配,一不小心mysql的就無法讀取相關(guān)文件的權(quán)利。
<SPAN style="LINE-HEIGHT: 22px; FONT-FAMILY: Verdana, 宋體, Helvetica, sans-serif; FONT-SIZE: 14px">mysqld_safe --defaults-file=/usr/local/mysql/data_3307/my.cnf &</SPAN>
130107 13:35:36 [Note] Server socket created on IP: '0.0.0.0'.
130107 13:35:36 [ERROR] /usr/local/mysql/bin/mysqld: Can't find file: './mysql/host.frm' (errno: 13)
130107 13:35:36 [ERROR] Fatal error: Can't open and lock privilege tables: Can't find file: './mysql/host.frm' (errno: 13)
130107 13:35:36 mysqld_safe mysqld from pid file /usr/local/mysql/data3307/mysql.pid ended
這里的錯誤也是很明顯的原因就是我們沒有讀取host。frm的權(quán)限了,補(bǔ)救的辦法又兩種:一種是直接到目錄下給mysql附上這樣的權(quán)限,第二種就是追究它原因?yàn)槭裁磿菢幽兀吭蚴俏覀冊诔跏蓟臅r候,沒有加入--user=mysql這個參數(shù)才導(dǎo)致生成的文件全市root權(quán)限。這樣就好辦了在下次做的時候我們就需要這樣的命令了:
root@zhou:/usr/local/mysql# mysql_install_db --user=mysql --defaults-file=/usr/local/mysql/data3307/my.cnf --datadir=/usr/local/mysql/data3307/ --user=mysql
ok,這時我們可以通過命令來查看一下我們開通的服務(wù)個數(shù),然后登錄上去進(jìn)行基本的操作,權(quán)限,鍵表啊,replication啊等等。
這里啟動了三個mysql服務(wù)器后,發(fā)現(xiàn)只能登錄到3306上面的服務(wù)去,而其他的就是沒法登錄,當(dāng)我把3307 3306殺掉后,登錄mysql確出現(xiàn)錯誤了,
root@zhou:/usr/local/mysql/tmp# mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111)
這里的錯誤原因是當(dāng)我在沒有指定那個數(shù)據(jù)庫服務(wù)器是它是有個默認(rèn)啟動計劃,所以這里可以看出它還是在等待mysql 3306的那個服務(wù)器的。
root@zhou:/etc/init.d# mysql -h127.0.0.1 -P3307
相關(guān)文章
mysql日志文件General_log和Binlog開啟及詳解
MySQL中的數(shù)據(jù)變化會體現(xiàn)在上面日志中,下面這篇文章主要給大家介紹了關(guān)于mysql日志文件General_log和Binlog開啟及詳解的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07淺談Mysql連接數(shù)據(jù)庫時host和user的匹配規(guī)則
這篇文章主要介紹了淺談Mysql連接數(shù)據(jù)庫時host和user的匹配規(guī)則,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01