1. 程式人生 > >MySQL 系列(一)安裝

MySQL 系列(一)安裝

運行級別 環境準備 開機自啟動 glibc mysql 復制 mysq char rem

MySQL 系列(一)安裝

以 Centos7 下安裝 MySQL 5.6 為例。

一、環境準備

(1) 下載

下載地址: https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz

(2) 安裝依賴

yum -y install perl perl-devel autoconf libaio

(3) 卸載已安裝的 MySQL

yum list installed | grep mysql  # 查詢已安裝的 MySQL
yum -y remove mysql-libs.x86_64  # 卸載 

(4) 創建 mysql 用戶

userdel mysql           # 刪除 mysql 用戶
groupdel mysql          # 刪除 mysql 用戶組
groupadd mysql          # 創建 mysql 用戶組
useradd -g mysql mysql  # 創建 mysql 用戶並加入 mysql 用戶組
passwd mysql            # mysq 添加密碼

(5) sudo 免密碼操作

visudo

mysql   ALL=(ALL)         ALL
%wheel  ALL=(ALL)         NOPASSWD: ALL

# 用戶加入 wheel 組
gpasswd -a mysql wheel

二、MySQL 安裝

(1) 切換到 mysql 帳號

# 切換到 mysql 帳號
su mysql
# 切換到 mysql 目錄
cd

(2) 將下載的二進制安裝包解壓後放到 /usr/local/mysql 目錄下

tar -zxvf mysql-5.6.38-linux-glibc2.12-x86_64.tar.gz
sudo mv mysql-5.6.38-linux-glibc2.12-x86_64 /usr/local/mysql

(3) 環境變量

sudo vim /etc/profile.d/start.sh

export PATH=$PATH:/usr/local/mysql/bin

source /etc/profile.d/start.sh     # 立即生效

(4) 在 etc 下新建配置文件 my.cnf

[mysql]
# 設置mysql客戶端默認字符集
default-character-set=utf8 
socket=/var/lib/mysql/mysql.sock

[mysqld]
user=mysql
skip-name-resolve
#設置3306端口
port = 3306 
socket=/var/lib/mysql/mysql.sock
# 設置mysql的安裝目錄
basedir=/usr/local/mysql
# 設置mysql數據庫的數據的存放目錄
datadir=/usr/local/mysql/data
# 允許最大連接數
max_connections=200
# 服務端使用的字符集默認為8比特編碼的latin1字符集
character-set-server=utf8
# 創建新表時將使用的默認存儲引擎
default-storage-engine=INNODB 
lower_case_table_names=1
max_allowed_packet=16M

(5) 創建 /var/lib/mysql 並將用戶修改為 mysql

# my.cnf 文件中配制的 socket 目錄
sudo mkdir /var/lib/mysql
sudo chown -R mysql:mysql /var/lib/mysql

(6) 初始化 MySQL

./scripts/mysql_install_db --user=mysql

到此 MySQL 安裝完畢!下面介紹 MySQL 作為服務啟動方式。

三、MySQL 啟動

1、添加mysql服務開機自啟動

sudo cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld    # 復制啟動腳本到資源目錄
sudo chmod +x /etc/rc.d/init.d/mysqld    # 增加 mysqld 服務控制腳本執行權限
sudo chkconfig --add mysqld              # 將 mysqld 服務加入到系統服務
sudo chkconfig --list mysqld             # 檢查 mysqld 服務是否已經生效

命令輸出類似下面的結果:

mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off

表明 mysqld 服務已經生效,在2、3、4、5運行級別隨系統啟動而自動啟動,以後可以使用 service 命令控制 mysql 的啟動和停止。

2、啟動msql

service mysqld start    # 啟動 msql
service mysqld stop     # 停止msql

四、權限控制

(1) 設置 mysql 帳號和密碼

以 root 賬戶登陸 mysql,默認是沒有密碼

update user set password=password(‘you password‘) where user=‘root‘ and host=‘localhost‘;
GRANT ALL PRIVILEGES ON *.* TO ‘your username‘@‘%‘ IDENTIFIED BY ‘your password‘ WITH GRANT OPTION;

GRANT USAGE ON *.* TO ‘root‘@‘%‘ IDENTIFIED BY ‘root‘ WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO root@‘%‘ IDENTIFIED BY ‘root‘;
FLUSH PRIVILEGES;

(2) 去除匿名用戶

delete from mysql.user where User=‘‘;   # 刪除匿名用戶,使用root用戶登錄數據庫
flush privileges;

五、錯誤處理

MySQL 日誌存儲目錄: my.cnf 中配制了 datadir 目錄,如 datadir=/usr/local/mysql/data,在 datadir 目錄下會新建一個 “主機名.err” 的文件

(1) 問題 1:Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘

ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘ (2)

解決方法:

打開 /etc/my.cnf,看看裏面配置的 socket 位置是什麽目錄,如 socket=/var/lib/mysql/mysql.sock

MySQL 服務端啟動時報錯,則很可能是 mysql 用戶沒有操作 /var/lib/mysql 的權限。一般將 /var/lib/mysql 用戶修改為 mysql 用戶可以解決問題。

chown -R mysql:mysql /var/lib/mysql

MySQL 客戶端連接時報錯,則很可能是 socket 路徑和 “/tmp/mysql.sock” 不一致。建立一個軟連接:

ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

每天用心記錄一點點。內容也許不重要,但習慣很重要!

MySQL 系列(一)安裝