一、數(shù)據(jù)庫安裝和簡單設(shè)置
1绣的、到?https://dev.mysql.com/downloads/mysql/?網(wǎng)站上下載 mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz 二進(jìn)制安裝包
2叠赐、查看系統(tǒng)已安裝的組件
yum grouplist
3、安裝依賴
yum groupinstall Development Tools -y
4屡江、解壓縮mysql(在做這步之前需要先下載mysql/mariadb/percona等mysql相關(guān)的數(shù)據(jù)庫芭概,這里使用mysql 5.7二制制包)
tar zxf /usr/local/src/mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz -C /usr/local/src/
mv /usr/local/src/mysql-5.7.30-linux-glibc2.12-x86_64 /usr/local/mysql
5、創(chuàng)建運(yùn)行mysql的用戶
useradd -u 5050 -s /sbin/nologin -M mysql
6惩嘉、設(shè)置權(quán)限(/usr/local/mysql/)這個(gè)目錄是剛才解壓的“目的目錄”第4步的/usr/local
chown -R mysql.mysql /usr/local/mysql/
7罢洲、運(yùn)行安裝腳本,檢測libaio,切換目錄到解壓后的mysql目錄
rpm -qa|grep libaio
cd /usr/local/mysql
建立數(shù)據(jù)存儲(chǔ)目錄/data/mysqldata目錄
mkdir -p /data/mysqldata
設(shè)置數(shù)據(jù)存儲(chǔ)目錄的用戶權(quán)限為mysql
chown -R mysql.mysql /data/mysqldata/
初始化數(shù)據(jù)庫宏怔。(這個(gè)地方和老版本的mysql初始化數(shù)據(jù)庫不相同)
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysqldata
沒有任何意外的話,能安裝成功畴椰,會(huì)產(chǎn)生一大堆初始化日志和安裝成功的提示臊诊,會(huì)給mysql的root@localhost用戶設(shè)置1個(gè)監(jiān)時(shí)生成的隨機(jī)密碼 ;會(huì)在/data/mysqldata/目錄下產(chǎn)生日志文件和數(shù)據(jù)目錄
8斜脂、建立啟動(dòng)腳本并設(shè)置啟動(dòng)
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
chkconfig --add /etc/init.d/mysqld
chkconfig --level 3 mysqld on
9抓艳、設(shè)置命令路徑
echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile
10、設(shè)置/etc/my.cnf配置文件:注意skip-grant-tables 是為了讓用戶可以直接無密碼登錄mysql實(shí)例
cat /etc/my.cnf
[mysqld]
datadir=/data/mysqldata
socket=/tmp/mysql.sock
symbolic-links=0
skip_name_resolve=on
skip-grant-tables
[mysqld_safe]
log-error=/data/mysqldata/mysql-err.log
pid-file=/data/mysqldata/mysql.pid
11帚戳、啟動(dòng)mysql服務(wù) 2種方式的示例 玷或; 特別注意,在啟動(dòng)mysql前片任,需要設(shè)置my.cnf文件偏友。最簡單的my.cnf示例如下
/etc/init.d/mysqld start
/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --user=mysql &
12、關(guān)閉的示例(最好不要用kill -9 會(huì)造成數(shù)據(jù)丟失)
/etc/init.d/mysqld stop
特別注意对供,直接用上面的第10步命令啟腳服務(wù)會(huì)首先讀取/etc/my.cnf文件位他,這里面有設(shè)置默認(rèn)的數(shù)據(jù)目錄和日志目錄,需要修改為自己設(shè)置的目標(biāo)目錄产场,不然系統(tǒng)mysql無法啟動(dòng)鹅髓,
特別注意,mysql.sock文件位置非常重要京景,如果使用rpm yum 方式安裝窿冯,mysql命令默認(rèn)讀取這個(gè)文件位置是/var/lib/mysql/mysql.sock,用二進(jìn)制安裝,默認(rèn)讀取/tmp/mysql.sock
特別注意确徙,目錄權(quán)限非常重要
二醒串、數(shù)據(jù)庫操作示例
1执桌、和老版本的mysql數(shù)據(jù)庫不同,mysql5.7之后的版本厦凤,在初始化mysql數(shù)據(jù)庫的時(shí)候鼻吮,會(huì)給mysql的root@localhost用戶設(shè)置1個(gè)監(jiān)時(shí)生成的隨機(jī)密碼。最好是修改掉這個(gè)隨機(jī)密碼方便操作;
方法1: 使用mysql -e 直接修改密碼 较鼓;設(shè)置password_expired列為NO椎木,使密碼不過期
mysql -e 'update mysql.user set authentication_string = password("123456") where user = "root";'
mysql -e 'update mysql.user set password_expired="N" where user="root";'
方法2: 先登錄mysql數(shù)據(jù)庫,然后輸入下面的命令;設(shè)置password_expired列為NO博烂,使密碼不過期
update mysql.user set authentication_string = password("123456") where user = "root";
update mysql.user set password_expired="N" where user="root";
2香椎、退出mysql命令終端,修改my.cnf文件禽篱,取消skip-grant-tables 選項(xiàng)畜伐,重啟mysql數(shù)據(jù)庫,使用下面命令登錄mysql數(shù)據(jù)庫,需要輸入修改后的密碼躺率。
mysql -uroot -p
3玛界、創(chuàng)建新的管理員用戶root@%,這個(gè)root可以通過遠(yuǎn)程設(shè)備登錄悼吱,并且這個(gè)用戶可以創(chuàng)建新的用戶的操作如下:
create user 'root'@'%' identified by '123456';
grant all privileges on?.?to 'root'@'%' identified by '123456';
update mysql.user set Grant_priv='Y' where user='root' and Host='%';
drop user 'root'@'localhost';
flush privileges;