ubuntu15.04手動安裝MySQL5.6.27資料庫
ubuntu15.04手動安裝MySQL5.6.27資料庫
1.手動安裝的原因
使用apt-get install mysql-server命令安裝MySQL的時候,環境變數已經配好了,
但是由於配置檔案/etc/mysql/my.cnf配置不完整,跟網上的不一樣,而且這種安裝方法是預設繫結到本機上的,也就是說只能在本機
訪問,不能從其他機子進行遠端訪問(在賬號允許在其他機子登陸的情形下)。
按照網上的方法,在my.cnf下的[mysqld]下並不能找到bind-address=127.0.0.1這一項。我就添加了bind-address=0.0.0.0這一項,但
是之後啟動一直出錯。。。然後在修改編碼後shell
用apt-get install比較方便,都是系統幫你配好了,要更改比較麻煩,不能按照自己的個性設定。
2.手動安裝
2.1下載MySQL安裝包
訪問MySQL官網:,根據系統下載對應的版本,要註冊一個oracle賬號,才可以下載。
如我的機子是64位的ubuntu版本,下載的是mysql-5.6.27-linux-glibc2.5-x86_64.tar.gz。
如果你的機子是32位的,安裝64位版本會出錯!因為x86_64是64位版本,而x86才是32位版本。
下載連結:http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.27-linux-glibc2.5-x86_64.tar.gz
由於下載的壓縮包較大,存放在/tmp目錄下。
2.2解壓mysql壓縮包
首先切換到/usr/local目錄下:cd /usr/local
然後解壓:
sudo tar zxvf /tmp/mysql-5.6.27-linux-glibc2.5-x86_64.tar.gz
當前目錄下出現解壓後的資料夾:mysql-5.6.27-linux-glibc2.5-x86_64
將其重新命名為mysql:mv mysql-5.6.27-linux-glibc2.5-x86_64 mysql
2.3更改mysql檔案及其子目錄的許可權
解壓後屬主預設是root,屬組預設是root,我的使用者名稱是gzx。改變屬主為我。
sudo chown -R gzx.gzx mysql
接下來在切換到mysql目錄下:cd mysql
執行 sudo ./scripts/mysql_install_db --user=gzx
複製檔案到init.d下,使機子開機時自動啟動mysql伺服器。
sudo cp support-files/mysql.server /etc/init.d/mysql.server
執行sudo ./scripts/mysql_install_db --user=gzx
如果提示找不到libaio.so.1共享庫找不到,即如下圖:
說明ubuntu15.04不存在libaio.so.1,查詢一下是否安裝:dpkg -l | grep libaio
如果什麼都沒有顯示,說明沒有安裝這個依賴包,
找一下軟體包的名字:apt-cache search libaio
然後根據軟體包的名字進行下載:sudo apt-get install libaio-dev libaio1
如下圖:
最後再重複sudo ./scripts/mysql_install_db --user=gzx即可。
安裝成功的畫面如下:
啟動mysql伺服器:./support-files/mysql.server start
如果出現如下錯誤:without updating files
修改mysql目錄下的my.cnf配置檔案:
找到[mysqld]模組,去掉註釋#,新增
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port=3306
儲存檔案後再執行上述命令即可。
2.4 檢視mysql伺服器是否啟動
使用如下命令:sudo lsof -i:3306
顯示如下介面則表示成功啟動:
否則可能是配置檔案有錯誤。
2.5 配置環境變數
為了能在shell下使用mysql的bin工具,需要將其配置到/etc/profile裡。
命令如下:sudo vi /etc/profile
在上方新增一行:export MYSQL_HOME=/usr/local/mysql
然後在PATH末尾下新增bin目錄,新增$MYSQL_HOME/bin:$PATH到PATH末尾
具體如下圖:
儲存後退出,執行如下命令,使環境變數生效:source /etc/profile
再在shell下執行如下命令 :export $MYSQL_HOME。
具體如下圖:
2.6 登陸mysql
使用root賬號登陸:mysql -uroot -p
預設密碼為空。
出現如下介面,表示登陸成功:
2.7 修改mysql的編碼方式
預設情況下,mysql建立資料庫和表時使用的編碼為latin1,不能使用中文,需要修改配置檔案my.cnf。
修改前:
在my.cnf下找到[client]模組,新增如下文字:default-character-set=utf8
在my.cnf下找到[mysql]模組,新增如下文字:default-character-set=utf8
在my.cnf下找到[mysqld]模組,新增如下文字:
character-server-set=utf8
init_connect='SET NAMES utf8'
注意上述必須是character-server-set=utf8,不能是default-character-set=utf8,否則會出錯。
具體如下圖:
接下來重啟mysql伺服器:service mysql restart。使之前配置生效。
登入伺服器後,輸入如下命令檢視編碼:show variables like 'char%';
出現如下介面表示修改成功:
2.8修改伺服器root的密碼和允許root遠端登陸
如果沒有密碼,root可能會對新建立的表缺許可權。預設情況下,root賬號只能在本機登陸,需修改進行登陸的主機。
2.8.1 更改root賬號為所有主機都可以登陸
update mysql.user set host='%' where user='root' and host='localhost';
2.8.2 修改root密碼
set password for 'root'@'localhost' = password('201314');
其中201314為密碼明文,但mysql.user使用者表儲存的是經過password()方法處理的密文,這可以通過查表得知。
重新整理許可權,以下為必須步驟,否則不起作用。
flush priveleges;
接下來檢視使用者表中的賬號:
select user, host, password from mysql.user;
結果如下圖:
2.8.3 遠端登陸命令
mysql -uroot -p201314 -h192.168.1.107
注意h與IP地址最好不要有空格。
2.9 其他錯誤
2.9.1 開機時mysql不會自動開啟
在mysql的配置檔案下的[mysqld]下新增user=我的使用者名稱,
再輸入如下命令:sudo update-rc.d -f mysql.server defaults
之後重啟機器即可。
2.9.2 修改配置檔案後,啟動時提示錯誤:too many variables
需加上--user=我的使用者名稱選項。如下:
sudo $MYSQL_HOME/bin/mysqld --user=gzx
2.9.3 用apt-get install安裝過mysql伺服器
必須解除安裝乾淨,比較有用的命令如下:sudo apt-get purge mysql-server-5.5
同時必須移除其他與mysql相關的配置檔案。
參考部落格連結:
http://yidwo.iteye.com/blog/1848547
http://blog.csdn.net/hackerwin7/article/details/2268681
http://www.codelast.com/?p=8208