MySQL 系列(一)安裝

MySQL 系列(一)安裝

以 Centos7 下安裝 MySQL 5.6 爲例。mysql

1、環境準備

(1) 下載linux

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

(2) 安裝依賴數據庫

yum -y install perl perl-devel autoconf libaio

(3) 卸載已安裝的 MySQLvim

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

(4) 建立 mysql 用戶socket

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

2、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) 環境變量code

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

# 必定要在 mysql 的安裝目錄下
./scripts/mysql_install_db --user=mysql

到此 MySQL 安裝完畢!下面介紹 MySQL 做爲服務啓動方式。

3、MySQL 啓動

一、添加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 服務已經生效,在二、三、四、5運行級別隨系統啓動而自動啓動,之後可使用 service 命令控制 mysql 的啓動和中止。

二、啓動msql

service mysqld start    # 啓動 msql
service mysqld stop     # 中止msql

4、權限控制

(1) 設置 mysql 賬號和密碼

以 root 帳戶登錄 mysql,默認是沒有密碼

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

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

(2) 去除匿名用戶

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

5、錯誤處理

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

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

相關文章
相關標籤/搜索