天天看點

Linux下安裝MySql總結 安裝 解除安裝

安裝

mysql的安裝主要有3種方法,一種是源碼安裝,一種是RPM安裝,一種是二進制檔案安裝(相當于Windows下的綠色安裝),這裡采用最後一種方式。

下載下傳

進入mysql官網,然後按照圖示找到指定地方,我們這裡下載下傳一個曆史版本5.5,然後指定platform為

Linux-Generic

,拖到最下面去,下載下傳.tar.gz格式的64位檔案。

Linux下安裝MySql總結 安裝 解除安裝
Linux下安裝MySql總結 安裝 解除安裝
Linux下安裝MySql總結 安裝 解除安裝
Linux下安裝MySql總結 安裝 解除安裝

開始安裝

不同于大部分教程,我這裡安裝到

/home/mysql

檔案夾下,不要問為什麼,習慣而已!

[[email protected]Z software]# tar -zxvf mysql-5.5.48-linux2.6-x86_64.tar.gz(解壓)
[[email protected]Z software]# mv mysql-5.5.48-linux2.6-x86_64 /home/mysql(移動到目标位置)
[[email protected]Z mysql]# cd /home/mysql
[[email protected]Z mysql]# groupadd mysql(添加mysql使用者組)
[[email protected]Z mysql]# useradd -g mysql -r mysql(添加名為mysql的使用者)
[[email protected]Z mysql]# chown -R mysql ./(将目前目錄擁有者設定為mysql)
[[email protected]Z mysql]# ./scripts/mysql_install_db --user=mysql --basedir=/home/mysql --datadir=/home/mysql/data(安裝預設資料庫,自定義安裝路徑時需指定basedir和datadir)
[[email protected]Z mysql]# chown -R root ./(将權限重新歸還給root)
[[email protected]Z mysql]# chown -R mysql data(但是data目錄的權限還是給mysql使用者)
[[email protected]Z mysql]# cp ./support-files/my-medium.cnf /etc/my.cnf(複制配置檔案)
[[email protected]Z mysql]# cp ./support-files/mysql.server /etc/init.d/mysql(添加到系統服務)
[[email protected]Z mysql]# chkconfig --add mysql(将服務設定為開機自啟)
[[email protected]Z mysql]# vi /etc/my.cnf(自定義安裝目錄後需要在mysqld下面手動增加basedir和datadir這2個參數,否則無法啟動)
	[mysqld]
	basedir=/home/mysql
	datadir=/home/mysql/data
[[email protected]Z mysql]# service mysql start(啟動服務)
Starting MySQL..										   [  OK  ]
           

安裝過程總結來說就是:解壓,建立mysql使用者組和使用者,修改目錄擁有者為mysql,安裝預設資料庫,複原目錄擁有者,複制配置檔案,配置成服務并設定開機自啟,完畢。

補充說明:

  • 至于為何要添加一個名為mysql的使用者,我沒有去找原因,反正按照做就是了;
  • 如果是自定義安裝路徑(差別于預設路徑/usr/local/mysql),在執行安裝腳本時需指定basedir和datadir這2個參數;
  • 複制my.cnf時可以根據需要選擇其它檔案來複制;
  • mysql.server 檔案裡面也有basedir和datadir的設定,不過經過測試,即使是自定義安裝路徑一般也不需要手動設定;
Linux下安裝MySql總結 安裝 解除安裝
Linux下安裝MySql總結 安裝 解除安裝
Linux下安裝MySql總結 安裝 解除安裝

啟動與停止

由于已經設定了開啟自己,一般情況下無需自行啟動,但是這裡還是寫一下啟動停止指令:

[[email protected]Z ~]# service mysql status
[[email protected]Z ~]# service mysql stop
[[email protected]Z ~]# service mysql start

           

設定密碼

第一次安裝完畢預設是沒有密碼的(修改密碼時一定要先記得啟動服務):

./bin/mysqladmin -u root password 你的密碼(第一次設定密碼時)
./bin/mysqladmin -u root -p password 新密碼(如果已經設定過密碼)
Enter password: 【輸入舊密碼,回車即修改成功】
           

開啟遠端通路

預設情況下是不允許遠端連接配接資料庫的,需要做如下修改:

# 格式:grant 權限 on 資料庫名.表名 使用者@登入主機 identified by "使用者密碼";
grant all privileges on *.* to root@'%' identified by '你的密碼';
flush privileges;
           

修改完之後應該是要重新開機才生效

service mysql restart

。如果依舊沒有效果,往下看。

如果是較老版本的mysql,找到

/etc/my.cnf

裡面的

skip-networking

,确定它是被注釋的:

#skip-networking
           

在新版本中,找到

bind-address

确定它是被注釋的:

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address		   = 127.0.0.1
           

設定utf-8編碼

修改

/etc/my.cnf

檔案,分别在

[client]

[mysqld]

[mysql]

下增加如下5個設定:

[client]
default-character-set=utf8

[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8
init_connect='SET NAMES utf8'

[mysql]
default-character-set=utf8
           

修改完記得重新開機mysql

忘記mysql密碼

首先,必須要有作業系統的root權限(以下方法未親自驗證)。

# service mysql stop
# mysqld_safe --skip-grant-tables &(&表示在背景運作)
# mysql
mysql> use mysql;
mysql> update user set password=password("test123") where user='root';
mysql> flush privileges;
mysql> exit;
           

錯誤日志

預設日志沒去找在哪,反正最好設定一下下面的這個,如果啟動失敗了,可以去日志查找錯誤原因,這個比較有效。

# vi /etc/my.cnf
[mysqld]
log=/var/log/mysqld_common.log
log-error=/var/log/mysqld_err.log
           

坑爹記錄

我之前一直啟動失敗,解除安裝重裝了好幾次還是失敗,後來才發現是my.cnf惹的禍,不知為何系統預設好像安裝了mysql-libs之類的什麼東西,而且也有/etc/my.cnf這個檔案,恰巧看的那篇教程沒有說要複制my.cnf這個檔案,導緻我一直用的是舊的my.cnf,裡面的basedir和datadir都是錯誤的,我以為這個檔案是在執行mysql_install_db之後自動複制到/etc下的,搞得我還一直在吐槽鼎鼎大名的mysql為何如何不友好,明明設定了basedir為何my.cnf裡面的basedir還是錯誤的,我一直在嘗試修改/etc/init.d/mysql裡面的basedir和datadir,也修改了my.cnf裡面的basedir,卻偏偏忘了修改datadir,這才導緻重裝幾遍都沒成功,僅以此文記錄坑爹史。

就是下面這篇坑爹文章害慘了我:

http://jingyan.baidu.com/article/a378c9609eb652b3282830fd.html

教訓:解除安裝時除了删除mysql各類檔案夾外,一定還要記得删除/etc/my.cnf檔案!

解除安裝

這裡隻介紹二進制安裝方式的解除安裝。

停止服務

[[email protected]Z ~]# service mysql status
MySQL running (16784)									  [  OK  ]
[[email protected]Z ~]# service mysql stop
Shutting down MySQL.									   [  OK  ]
[[email protected]Z ~]# service mysql status
MySQL is not running									   [FAILED]
           

删除檔案

分别使用

whereis mysql

 和 

find / -name mysql

查找系統中所有有關mysql的地方(貌似後者已經包括了前者,可以隻采用find查找),然後依次删除對應檔案夾即可,這裡千萬要謹慎操作,避免誤删無關檔案。

[[email protected]Z ~]# whereis mysql
mysql: /usr/lib64/mysql /usr/local/bin/mysql /usr/share/mysql
[[email protected]Z ~]# find / -name mysql
/usr/lib64/mysql
/usr/share/mysql
/usr/local/bin/mysql
/etc/rc.d/init.d/mysql
/var/lib/mysql
/var/lib/mysql/mysql
/home/mysql
/home/mysql/bin/mysql
/home/mysql/data/mysql
/home/mysql/include/mysql
[[email protected]Z ~]# rm -rf /usr/lib64/mysql
[[email protected]Z ~]# rm -rf /usr/share/mysql
[[email protected]Z ~]# rm -rf /usr/local/bin/mysql
[[email protected]Z ~]# rm -rf /etc/rc.d/init.d/mysql 
[[email protected]Z ~]# rm -rf /var/lib/mysql/
[[email protected]Z ~]# rm -rf /home/mysql

           

删除MySQL使用者以及使用者組(可選)

[[email protected] ~]# id mysql
[[email protected] ~]# userdel mysql

           

删除my.inf

rm -rf /etc/my.cnf

繼續閱讀