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
--------------