MySQL 8.0.11已發布,聽聞性能提升兩倍,今個自己安裝體驗下。
1、卸載mysql老版本
rpm -qa|grep mysql或者mairadb
rpm -e mysql*/mariadb*
rpm -e --nodeps mysql*/mariadb*
2、安裝依賴包
yum install gcc gcc-c++ libaio
3、下載軟件包並解壓
tar -zxf mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz -C /opt/mysql
4、創建軟連接
cd /usr/local/
ln -sv /opt/mysql/mysql-8.0.11-linux-glibc2.12-x86_64 mysql
5、創建用戶和組
groupadd -g 301 mysql
useradd -g 301 -r -s /bin/nologin -u 301 mysql
6、相關目錄結構和權限
chown -R mysql:mysql /usr/local/mysql
mkdir -p /data
mkdir -p /data/mysql/data
mkdir -p /data/mysql/log/binlogs
mkdir -p /data/mysql/log/slowlogs
mkdir -p /data/mysql/log/relaylogs
mkdir -p /data/mysql/undo
mkdir -p /data/mysql/redologs
mkdir -p /data/mysql/tmp
chown -R mysql:mysql/data/mysql
7、配制my.cnf文件
[mysqld]
port=3306
datadir=/data
log-error=/data/mysql/log/mysql-err.log
user=mysql
[client]
socket=/data/mysql/mysql.socket
8、環境變量配置
echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile
9、初始化數據庫
兩種方式
bin/mysqld --initialize --user=mysql
bin/mysqld --initialize-insecure --user=mysql
我這里采用非認證加密方式
# /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/data
10、啟停服務
# /usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/etc/my.cnf &
# /usr/local/mysql/bin/mysqladmin shutdown
11、制作啟動腳本
復制啟動腳本到/etc/init.d目錄下
# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
修改腳本文件中
# vim /etc/init.d/mysqld
46 basedir=/usr/local/mysql --mysql的安裝路徑
47 datadir=/data --mysql的數據目錄
賦予該文件執行權限
chmod 755 /etc/init.d/mysqld
啟動服務
/etc/init.d/mysqld start
Starting MySQL.... [ OK ]
備注:
對於Mysql 5.7.6以后的5.7系列版本,Mysql使用mysqld --initialize或mysqld --initialize-insecure命令來初始化數據庫,后者可以不生成隨機密碼。
但是安裝Mysql時默認使用的是前一個命令,這個命令也會生成一個隨機密碼。改密碼保存在了Mysql的日志文件中。
在Centos 7系統上使用rpm命令安裝Mysql后,mysql的配置文件是/etc/my.cnf,打開該文件,可以看到mysql的datadir和log文件等的配置信息,如下:
datadir=/var/lib/mysql
log-error=/var/log/mysqld.log
打開/var/log/mysqld.log文件,搜索字符串A temporary password is generated for root@localhost:,可以找到這個隨機密碼,通常這一行日志在log文件的最初幾行,比較容易看到。
[root@localhost ~]# cat /data/mysql/log/mysql-err.log | grep password
2018-06-09T13:07:48.538150Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: b.2;xthNHu?5
使用找到的隨機密碼登錄mysql,首次登錄后,mysql要比必須修改默認密碼,否則不能執行任何其他數據庫操作,這樣體現了不斷增強的Mysql安全性。
12、進入數據庫
#/usr/local/mysql/bin/mysql -p
修改密碼
alter user 'root'@'localhost' identified by '123456';
13、查看數據庫版本
(root@localhost:)[(none)]> \s
Connection id: 9
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 8.0.11 MySQL Community Server - GPL
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8mb4
Db characterset: utf8mb4
Client characterset: utf8mb4
Conn. characterset: utf8mb4
UNIX socket: /tmp/mysql.sock
Uptime: 25 min 13 sec
Threads: 2 Questions: 13 Slow queries: 0 Opens: 110 Flush tables: 2 Open tables: 86 Queries per second avg: 0.008
--------------