程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 基於mysql多實例裝置的深刻解析

基於mysql多實例裝置的深刻解析

編輯:MySQL綜合教程

基於mysql多實例裝置的深刻解析。本站提示廣大學習愛好者:(基於mysql多實例裝置的深刻解析)文章只能為提供參考,不一定能成為您想要的結果。以下是基於mysql多實例裝置的深刻解析正文


信任年夜多半人都碰到過量實例裝置mysql吧,信任年夜多半人只需找到一份多實例裝置的教程就會很輕易弄定了,然則越是順遂的裝置進程越讓我們不安,為何呢,當我們在依照教程一步一步來的時刻,你曉得每句話的意思的目標嗎?湧現毛病今後的我們又該怎樣辦呢?如今我為年夜家展現我的裝置進程,各類糾結,各類毛病。
起首解釋一個場景:我的電腦是ubuntu體系,之前apt-get主動裝置過mysql。這也是湧現毛病最多的緣由之一。
上面是我的裝置進程,個中充滿著各類毛病:

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源碼裝置曾經完成了,如今要做就是初始化用戶了,也就是多實例中最主要的一部了,今後的每步都要留意敕令履行後的成果:

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 >scripts/mysql_install_db </SPAN><BR ><SPAN >--defaults-file=/usr/local/mysql/data_3308/my.cnf </SPAN><BR ><SPAN >--datadir=/usr/local/mysql/data_3308/</SPAN>

下面的mysql_install_db這個敕令就是來停止初始化新用戶。這裡要留意敕令履行後的成果,第一次的時刻我的履行成果是如許的:

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

這裡可以看出曾經湧現了毛病,緣由是甚麼,年夜家應當可以看明確了,本身太纰漏了。招致本身從新履行了一次cmake
然後從新停止下面的敕令了。直到我們看到如許的成果:表現初始化勝利了,祝賀你上面可以停止上面的操作了。

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庫等這些根本信息。
對了必定要留意了,權限的分派,一不當心mysql的就沒法讀取相干文件的權力。

<SPAN >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的權限了,解救的方法又兩種:一種是直接到目次下給mysql附上如許的權限,第二種就是窮究它緣由為何會那樣呢?緣由是我們在初始化的時刻,沒有參加--user=mysql這個參數才招致生成的文件全市root權限。如許就好辦了鄙人次做的時刻我們就須要如許的敕令了:

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,這時候我們可以經由過程敕令來檢查一下我們守舊的辦事個數,然後登錄上去停止根本的操作,權限,鍵表啊,replication啊等等。

這裡啟動了三個mysql辦事器後,發明只能登錄到3306下面的辦事去,而其他的就是沒法登錄,當我把3307 3306殺失落後,登錄mysql確湧現毛病了,

root@zhou:/usr/local/mysql/tmp# mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111)

這裡的毛病緣由是當我在沒有指定誰人數據庫辦事器是它是有個默許啟動籌劃,所以這裡可以看出它照樣在期待mysql 3306的誰人辦事器的。
root@zhou:/etc/init.d# mysql -h127.0.0.1 -P3307

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved