MySQL 系列(一)安裝
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 系列(一)安裝