開發(fā)不易翎冲,希望各位同仁少踩坑蛉艾,故在此指出安裝mysql-5.7各種坑照棋,同時(shí)附上解決方案.
1.下載
mysql各版本下載地址: http://ftp.ntu.edu.tw/MySQL/Downloads/
我這里選擇mysql-5.7.21,通用版泳梆,linux下64位鳖悠。
2.解壓
將安裝包放到 /usr/local 目錄下榜掌,解壓
tar -zxvf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz
修改解壓目錄名稱為mysql
3.添加用戶組和用戶
添加用戶組
[root@iz8vb5o19rg1twsj651szwz local]# groupadd mysql
添加用戶mysql 到用戶組mysql
[root@iz8vb5o19rg1twsj651szwz local]# useradd -g mysql mysql
4.安裝
設(shè)置權(quán)限
[root@iz8vb5o19rg1twsj651szwz local]# chown -R mysql .
[root@iz8vb5o19rg1twsj651szwz local]# chgrp -R mysql .
[root@iz8vb5o19rg1twsj651szwz local]# yum install libaio
執(zhí)行安裝腳本并初始化:
[root@iz8vb5o19rg1twsj651szwz local]# cd mysql
[root@iz8vb5o19rg1twsj651szwz mysql]# ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
//注釋
./bin/mysqld --initialize --user=mysql --basedir=你安裝的mysql文件夾所在路徑 --datadir=數(shù)據(jù)目錄路徑bai
運(yùn)行該命令后可能出現(xiàn)報(bào)錯(cuò)如下:
error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
解決:
出現(xiàn)該問題首先檢查該鏈接庫文件有沒有安裝使用 命令進(jìn)行核查
rpm -qa|grep libaio
運(yùn)行該命令后發(fā)現(xiàn)系統(tǒng)中無該鏈接庫文件,則進(jìn)行安裝
yum install libaio-devel.x86_64
安裝成功后,繼續(xù)運(yùn)行數(shù)據(jù)庫的初始化命令乘综,提示成功憎账。
注意:初始化最后的默認(rèn)密碼需要記住
成功后接著執(zhí)行下面命令:
[root@iz8vb5o19rg1twsj651szwz mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@iz8vb5o19rg1twsj651szwz mysql]# chmod 755 /etc/init.d/mysqld
注意:5.6之前的版本是此操作
[root@iz8vb5o19rg1twsj651szwz mysql]# cp support-files/my-medium.cnf /etc/my.cnf
5.6之后的版本執(zhí)行以下操作
[root@iz8vb5o19rg1twsj651szwz mysql]# cp support-files/my-default.cnf /etc/my.cnf
修改啟動(dòng)腳本
[root@iz8vb5o19rg1twsj651szwz mysql]# vi /etc/init.d/mysqld
修改項(xiàng):
basedir=/usr/local/mysql/
datadir=/usr/local/mysql/data/mysql
啟動(dòng)服務(wù)
[root@iz8vb5o19rg1twsj651szwz mysql]# service mysqld start
啟動(dòng)服務(wù)可能報(bào)錯(cuò):
解決
啟動(dòng)失敗注意檢查數(shù)據(jù)目錄的權(quán)限,要與mysql程序運(yùn)行用戶權(quán)限一致卡辰,執(zhí)行以下命令解決
[root@db01 mysql]# chown -R mysql.mysql ../mysql
若還報(bào)錯(cuò)請參考:https://blog.csdn.net/eagle89/article/details/79813405
5.啟動(dòng)成功后登錄測試
接著再進(jìn)行以下操作
[root@iz8vb5o19rg1twsj651szwz ~]# yum install ncurses ncurses-devel
[root@iz8vb5o19rg1twsj651szwz ~]# yum install libncurses.so.5
[root@iz8vb5o19rg1twsj651szwz ~]# /usr/local/mysql/bin/mysql -V
登錄測試胞皱,輸入默認(rèn)密碼即可登錄成功
[root@iz8vb5o19rg1twsj651szwz ~]# /usr/local/mysql/bin/mysql -uroot -p
6.重置用戶密碼
用密碼登錄后,必須馬上修改新的密碼九妈,不然使用數(shù)據(jù)庫會(huì)報(bào)如下錯(cuò)誤:
mysql> use mysql;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
修改密碼
mysql> alter user 'root'@'localhost' identified by '123456';
可能修改密碼報(bào)錯(cuò)
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
解決
這個(gè)其實(shí)與validate_password_policy的值有關(guān)反砌。validate_password_policy有以下取值:
默認(rèn)是1,即MEDIUM萌朱,所以剛開始設(shè)置的密碼必須符合長度宴树,且必須含有數(shù)字,小寫或大寫字母晶疼,特殊字符酒贬。
有時(shí)候,只是為了自己測試翠霍,不想密碼設(shè)置得那么復(fù)雜锭吨,譬如說,我只想設(shè)置root的密碼為123456寒匙。
必須修改兩個(gè)全局參數(shù):首先零如,修改validate_password_policy參數(shù)的值
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)
validate_password_length(密碼長度)參數(shù)默認(rèn)為8,我們修改為1
mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)
完成之后再次執(zhí)行修改密碼語句即可成功
mysql> alter user 'root'@'localhost' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
查看用戶表密碼是否已更改
mysql> select user,host,password from mysql.user;
mysql> exit;
7.使用新密碼登錄
登錄命令:mysql -uroot -p
解決:安裝mysql命令行
yum install mysql
然后再次登錄成功
若登錄出現(xiàn)異常:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '***' (2)
解決請參考:http://aiezu.com/article/45.html
8.開啟mysql的遠(yuǎn)程訪問權(quán)限
mysql> use mysql;
注釋:root代表用戶,123456是密碼
mysql> GRANT ALL PRIVILEGES ON . TO root@"%" IDENTIFIED BY "123456";
mysql> flush privileges;
因?yàn)榘⒗镌品?wù)器自帶防火墻锄弱,所以還要在阿里云服務(wù)器開發(fā)3306端口
至此完成安裝完成?祭佟!
相關(guān)命令:
重啟mysql
service mysqld restart
啟動(dòng)mysql
service mysqld start
關(guān)閉mysql
service mysqld stop
查看運(yùn)行狀態(tài)
service mysqld status
另附mysql配置文件
[mysql]
# 設(shè)置mysql客戶端默認(rèn)字符集
default-character-set=utf8
[mysqld]
skip-name-resolve
#設(shè)置3306端口
port = 3306
# 設(shè)置mysql的安裝目錄
basedir=/usr/local/mysql
# 設(shè)置mysql數(shù)據(jù)庫的數(shù)據(jù)的存放目錄
datadir=/usr/local/mysql/data
# 允許最大連接數(shù)
max_connections=200
# 服務(wù)端使用的字符集默認(rèn)為8比特編碼的latin1字符集
character-set-server=utf8
# 創(chuàng)建新表時(shí)將使用的默認(rèn)存儲(chǔ)引擎
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M
[mysqld_safe]
log=/usr/local/mysql/log/mysql.log
long_query_time=2
log-slow-queries= /usr/local/mysql/log/slowquery.log
log_error=/usr/local/mysql/log/mysql.log
pid-file=/usr/local/mysql/log/mysql.pid