繼MySQL 5.7之后扇单,直接跳到了MySQL 8.0换可,官方說(shuō)這次來(lái)了個(gè)大升級(jí)椎椰,其他的不說(shuō),就訪問(wèn)速度是5.7的2倍沾鳄,因此我也嘗試安裝使用慨飘,根據(jù)官方文檔,下面是安裝的過(guò)程
一译荞、工具
Ubuntu 16.04.4 LTS (GNU/Linux 4.4.0-117-generic x86_64)
MySQL Community Server 8.0.15
二瓤的、安裝過(guò)程
1、下載安裝包
選擇的是Linux 64位通用的二級(jí)制版本吞歼,這樣不在需要進(jìn)行編譯安裝圈膏,系統(tǒng)安裝依賴庫(kù)后就可以直接使用。
wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.15-linux-glibc2.12-x86_64.tar.xz
2篙骡、解壓
解壓之后將軟件包移動(dòng)到系統(tǒng)中的/usr/local目錄稽坤,并命名為mysql
xz -d mysql-8.0.15-linux-glibc2.12-x86_64.tar.xz
tar -xvf mysql-8.0.15-linux-glibc2.12-x86_64.tar
mv mysql-8.0.15-linux-glibc2.12-x86_64 /usr/local/mysql
3丈甸、安裝依賴庫(kù)
官方說(shuō)要安裝libaio,但實(shí)際如果你安裝libaio庫(kù)的話不行尿褪,還需安裝numactl庫(kù)睦擂,如下
apt install numactl
apt install libaio-dev
4、 添加用戶茫多、設(shè)置權(quán)限
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
cd /usr/local
cd mysql
mkdir mysql-files
chown mysql:mysql mysql-files
chmod 750 mysql-files
5、初始化數(shù)據(jù)庫(kù)
bin/mysqld --initialize --user=mysql
可以看到系統(tǒng)隨機(jī)給root用戶分配了一個(gè)密碼忽刽,這個(gè)密碼(hO:(?ug?S3yt)要記住天揖,想要自定義過(guò)后可以再改
如下所示,密碼在第三行 A temporary password is generated for root@localhost: hO:(?ug?S3yt
2019-04-01T12:12:57 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.15) initializing of server in progress as process 7393
2019-04-01T12:12:57 0 [Warning] [MY-010122] [Server] One can only use the --user switch if running as root
2019-04-01T12:12:57 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: hO:(?ug?S3yt
2019-04-01T12:12:57 0 [System] [MY-013170] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.15) initializing of server has completed
6跪帝、安裝SSL服務(wù)
執(zhí)行安裝命令之前先安裝openssl今膊,不然會(huì)報(bào)錯(cuò)
apt install openssl
bin/mysql_ssl_rsa_setup
7、 復(fù)制服務(wù)文件
cp support-files/mysql.server /etc/init.d/mysql.server
三伞剑、使用MySQL 8.0.15
1斑唬、開(kāi)啟服務(wù)
&是后臺(tái)運(yùn)行的意思,執(zhí)行命令之后黎泣,終端會(huì)卡在一個(gè)位置恕刘,再按一下Enter即可
bin/mysqld_safe --user=mysql &
2、 使用用戶root登錄
使用剛才隨機(jī)生成的密碼抒倚,即可計(jì)入數(shù)據(jù)庫(kù)
bin/mysql -uroot -p
3褐着、更改root用戶密碼
第一次使用隨機(jī)登錄并不能使用,因此我們需要更改密碼托呕,如下
(1)含蓉、 方案一:限制本地登錄
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼';
flush privileges;
(2)、 方案二:可以任意IP與第三方客戶端登錄
ALTER USER 'root'@'localhost' IDENTIFIED BY '密碼' PASSWORD EXPIRE NEVER; #修改root的密碼與加密方式
use mysql; #切換到mysql庫(kù)
update user set host='%' where user = 'root'; #更改可以登錄的IP為任意IP
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密碼'; #再次更改root用戶密碼项郊,使其可以在任意IP訪問(wèn)
flush privileges; #刷新權(quán)限
更改好之后馅扣,退出,并使用新密碼重新登錄着降,再次查看數(shù)據(jù)庫(kù)差油,可以看到可以使用了
到這里,MySQL 8.0.15 安裝結(jié)束
MySql的配置
1任洞、配置文件
vim my.cnf
[mysqld] #服務(wù)端基本設(shè)置
port = 3307 #MySQL監(jiān)聽(tīng)端口
basedir=/usr/local/mysql #使用該目錄作為根目錄(安裝目錄)
datadir=/media/bear/D/DATA #數(shù)據(jù)文件存放的目錄
socket=/var/lib/mysql/mysql.sock #(默認(rèn))為MySQL客戶端程序和服務(wù)器之間的本地通訊指定一個(gè)套接字文件
user=mysql #MySQL啟動(dòng)用戶
character_set_server = utf8mb4 #服務(wù)端默認(rèn)編碼(數(shù)據(jù)庫(kù)級(jí)別)
collation_server = utf8mb4_bin #服務(wù)端默認(rèn)的比對(duì)規(guī)則厌殉,排序規(guī)則
pid-file=/var/run/mysqld/mysqld.pid #(默認(rèn))進(jìn)程文件所在目錄
log-error=/var/log/mysql/error.log #(默認(rèn))錯(cuò)誤日志地址
sudo cp ./my.cnf /etc/mysql/my.cnf #copy至mysql的配置文件目錄
2、創(chuàng)建進(jìn)程文件目錄
mkdir /var/run/mysqld
chown mysql /var/run/mysqld/ -R
3侈咕、 賦予日志目錄的寫(xiě)權(quán)限
sudo chmod 757 /var/run/mysqld/
4公罕、 設(shè)置環(huán)境變量
echo "export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/sbin" >> /etc/profile
source /etc/profile
5、mysql開(kāi)機(jī)自啟動(dòng)
1耀销、 預(yù)使mysql開(kāi)機(jī)自啟動(dòng)楼眷,首先需要注冊(cè)mysql為ubuntu下的服務(wù)铲汪。
直接拷貝mysql.server文件至/etc/init.d/目錄下即可。
sudo cp $MYSQL_HOME/support-files/mysql.server /etc/init.d/mysql.server
sudo chmod +x /etc/init.d/mysql.server
2. 修改my.cnf罐柳,指定mysql的啟動(dòng)用戶
定義:命令1=./mysql.server start –user=掌腰,命令2=./mysql.server start。(注意张吉,命令1齿梁、2的區(qū)別在于紅色部分)
在編譯安裝mysql的過(guò)程中,若執(zhí)行configure命令時(shí)指定“–user=user1”參數(shù)肮蛹,則mysql將由用戶user1啟動(dòng)勺择,在mysql.server文件中會(huì)有“user=user1”這樣一行來(lái)指定mysql的啟動(dòng)用戶,但該行指定的啟動(dòng)用戶并未生效伦忠。即省核,需要使用命令1來(lái)啟動(dòng)mysql,命令2啟動(dòng)失敗昆码。
為了使命令2生效气忠,同時(shí)為了mysql開(kāi)機(jī)自啟動(dòng),需要修改my.cnf赋咽,在[mysqld]區(qū)塊下添加“user=user1”這樣一行旧噪。如此,便可使用命令2啟動(dòng)mysql脓匿,mysql也可以成功開(kāi)機(jī)自啟動(dòng)舌菜。
3. 設(shè)置mysql開(kāi)機(jī)自啟動(dòng)
讓mysql開(kāi)機(jī)自己?jiǎn)?dòng)
sudo update-rc.d -f mysql.server defaults
如果不想讓mysql開(kāi)機(jī)自己?jiǎn)?dòng),可以使用
sudo update-rc.d -f mysql.server remove
4. 服務(wù)的使用
啟動(dòng)mysql:service mysql.server start亦镶;
停止mysql:service mysql.server stop日月;
查看mysql運(yùn)行狀態(tài):service mysql.server status。
另外缤骨,要確保mysql啟動(dòng)用戶user1對(duì)$MYSQL_HOME具有讀寫(xiě)權(quán)限爱咬,否則會(huì)因權(quán)限問(wèn)題導(dǎo)致mysql啟動(dòng)失敗。
(若無(wú)法啟動(dòng) 可考慮加上sudo)
補(bǔ)充
Ubuntu 取消 Apache及MySQL等自啟動(dòng)
1. 裝個(gè) sysv-conf-rc
2. sudo update-rc.d -f mysql remove 刪除mysql隨機(jī)器啟動(dòng)的服務(wù)
sudo update-rc.d -f apache2 remove 刪除apache2隨機(jī)器啟動(dòng)的服務(wù)
3. 查看/etc/rc2.d/里面的apache和mysql啟動(dòng)腳本绊起,通常都是兩個(gè)阿拉伯?dāng)?shù)字后再接一個(gè)英文字母精拟,再加腳本名稱。英文字母是S的都是會(huì)自動(dòng)啟動(dòng)的虱歪,K則相反蜂绎。所以只要找到apache和mysql的啟動(dòng)腳本,把S改成K就可以了