RedHat 6 安裝 MySQL 5.5 流程記錄及相關問題解決方案

1. RedHat 中 使用 yum 方式安裝 MySQL

1.1 刪除系統自帶的 MySQL 5.1
rpm -qa | grep mysql   #查看已經安裝的mysql
rpm -e mysql            #普通刪除模式
rpm -e --nodeps mysql  #強力刪除模式
1.2 使用yum卸載rpm包防止 mysql 安裝衝突
yum -y remove mysql-libs-5.1.66*
1.3 建立本地的 yum 資源庫配置
vi /etc/yum.repos.d/local.repo

加入以下一段內容:mysql

[localrepo]
name = myLocalYumRepo
baseurl = /home/rhel/Downloads/MySQL-5.5.58-l.el6-rpm
gpgcheck = 0
enable = 1

其中 baseurl 指向了個人 MySQL rpm 包所在路徑。sql

1.4 yum 安裝 MySQL

配置好 local_yum_repo 以後,cd 進入baseurl 所在目錄,就能夠安裝下面三個:shell

yum install MySQL-server-5.5.58-1.el6.x86_64.rpm
yum install MySQL-client-5.5.58-1.el6.x86_64.rpm
yum install MySQL-devel-5.5.58-1.el6.x86_64.rpm
1.4.1 卸載 MySQL

先用命令查看一下,有哪些已經安裝的 mysql 程序:數據庫

rpm -qa|grep -i mysql

使用 rpm 方式安裝的採用下面的命令卸載:vim

rpm -ev MySQL-client-5.5.58-1.el6.x86_64 --nodeps
rpm -ev MySQL-devel-5.5.58-1.el6.x86_64 --nodeps
rpm -ev MySQL-server-5.5.58-1.el6.x86_64 --nodeps

查找原有的 mysql 目錄:socket

find / -name mysql

找到以下內容,一 一 刪除:tcp

rm -rf /usr/lib64/mysql
rm -rf /var/lib/mysql
rm -rf /var/lib/mysql/data/mysql
rm -rf /var/lib/mysql/mysql

手動刪除 /etc/my.cnfide

rm -rf /etc/my.cnf

最後再檢查一下時候還有安裝 的 mysql:ui

rpm -qa|grep -i mysql

沒有顯示的話,就說明已經卸載完畢。

1.5 安裝完以後的目錄介紹

安裝後 MySQL主要的默認存放文件目錄:

/usr/bin                 #這裏存放腳本和客戶端程序
/var/lib/mysql        #mysql的數據存儲目錄
/usr/share/mysql  #mysql存放的初始化相關腳本
1.6 MySQL 配置文件

編輯:vi /etc/my.cnf

# The MySQL Client
[client]
#客戶端默認鏈接字集集,若編譯安裝時已指定則不用填寫
#character-set-server = utf8
#客戶端鏈接通訊端口
port = 3306
#客戶端通訊的用戶密碼端口等信息保存文件
socket = /var/lib/mysql/mysql.sock
default-character-set=utf8

# The MySQL server
[mysqld]
#mysql服務端監聽端口
port  = 3306     
#mysql數據庫存放目錄
datadir = /var/lib/mysql/data
socket = /var/lib/mysql/mysql.sock
#服務端pid進程文件,若丟失則重啓Mysql從新生成,若重啓失敗,
#則可能因爲mysqld進程未殺死,用pkill mysql後則能重啓成功Mysql
#pid-file =/opt/mysql/data/myDBserver.pid
bind-address = 0.0.0.0

[mysql]
socket = /var/lib/mysql/mysql.sock
1.7 初始化 MySQL

使用默認路徑:

/usr/bin/mysql_install_db --user=mysql
1.8 將 mysql 目錄全部者及用戶組修改成 "mysql"
chown -R mysql /var/lib/mysql/
chgrp -R mysql /var/lib/mysql/
1.9 啓動和中止 MySQL

啓動 MySQL 服務:

#/etc/init.d/mysqld start  # rhel 沒有這個命令
/etc/init.d/mysql start

中止 MySQL 服務:

/etc/init.d/mysql stop
1.10 修改 MySQL root 用戶的默認密碼

(1)方式 1:

  1. 先使用命令:mysql 進入 MySQL

  2. 執行 SQL 語句更新 root 密碼

    update mysql.user set password=PASSWORD('Cs123456') where user='root';
  3. 刷新一下權限,就能夠了。

    flush privileges;

(2)方式 2:

修改 root 用戶密碼的另外一種方式,執行 shell 命令:

mysqladmin -u root password Cs123456
1.11 登陸 MySQL 的命令格式
mysql [-u username] [-h host] [-p[password]] [dbname]

例如:

mysql -u root -pCs123456 -h localhost
1.12 爲 root 的遠程鏈接受權
mysql -uroot -p'Cs123456'
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

若是不想給 root 受權遠程鏈接,咱們能夠新建一個用戶專門用做遠程鏈接使用,好比 」test「:

create user test identified by 'Cs123456';
grant all privileges on *.* to 'test'@'%'identified by 'Cs123456' with grant option;
flush privileges;

@'%' 的意思是對全部的 IP 地址開放。

修改用戶密碼可使用下面的語句:

update mysql.user set password=password('新密碼') where User="test" and Host="localhost";
flush privileges;

刪除用戶:

delete from user where User='test' and Host='localhost';
flush privileges;
1.13 解決 MySQL 沒法遠程鏈接的問題
vi /etc/my.cnf

bind-address = 127.0.0.1 ,設置成 bind-address = 0.0.0.0


2. 安裝過程當中遇到的問題

★ ERROR! MySQL server PID file could not be found!

緣由:MySQL 進程卡死。
解決方法:

1.殺死mysql進程:killall mysqld
2.重啓mysql:service mysql start
★ ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/tmp/mysql.sock'

緣由:多是 mysql.sock 文件的位置不正確

解決方法:

一、先找到 mysql.sock 的位置:

lsof -c mysqld|grep sock$

找到了這個路徑:/var/lib/mysql/mysql.sock

二、vi /etc/my.cnf 配置 [mysqld] [mysql][client],將 socket 的路徑改爲上面查出來的路徑。

★ Starting MySQL. ERROR! The server quit without updating PID file (/var/lib/mysql/data/myDBserver.pid

可能緣由:上一次 MySQL 非正常關閉

解決方法:建立一個 myDBserver.pid 空文件,而且隨便設置一個進程中沒有的 pid

vi /var/lib/mysql/data/myDBserver.pid
23432

而後重啓 MySQL 服務,若是沒有其餘的緣由的話,就能夠正常啓動了。

★ 關於遠程訪問mysql出現Access denied for user 'root'@'

兩種狀況會致使這個問題:

(1)root 密碼輸入錯誤

(2)在 mysql 服務端沒有開放 root 對外遠程鏈接的受權。解決方法可參考(1.)

★ 配置防火牆,開啓3306端口

先查看一下 防火牆開放的端口:

iptables -nL --line-number

顯示DROP表明防火牆阻止了3306端口。

更改 防火牆,放開 3306 端口:

vim /etc/sysconfig/iptables

在 COMMIT 上一行加入以下內容:

-A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT

重啓防火牆:

service iptables restart

查看 3306 是否變爲 ACCEPT,若是是就表示已經開放端口啦。

相關文章
相關標籤/搜索