以 Centos7 下安裝 MySQL 5.6 爲例。mysql
(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
(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 做爲服務啓動方式。
一、添加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
(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;
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
天天用心記錄一點點。內容也許不重要,但習慣很重要!