mysql8简介
1、在8.0版本之前,默认字符集为latin1,utf8指向的是utf8mb3,8.0版本默认字符集为utf8mb4,utf8默认指向的也是utf8mb4。
2、系统表全部换成事务型的innodb表,默认的MySQL实例将不包含任何MyISAM表,除非手动创建MyISAM表。
准备
下载mysql软件包,我这里下载的是mysql-8.0.13-linux-glibc2.12-x86_64
解压到指定文件夹
# tar -xf mysql-8.0.13-linux-glibc2.12-x86_64.tar -C /usr/local/
改名
# mv mysql-8.0.13-linux-glibc2.12-x86_64 mysql
添加mysql用户,并把mysql文件夹授权给该用户
# useradd mysql
# cd /usr/local/mysql
# chown -R mysql.mysql ./
安装
初始化数据库,会出现密码,需要记住密码,第一次登录需要用该密码
# cd /usr/local/mysql/bin
# ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
如果出现./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
错误,则需要安装libaio:
# rpm -qa|grep libaio
# yum install libaio-devel.x86_64
注:
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
//初始化数据库
这个命令和mysql5.7之前的命令不一样了,之前命令是:bin/mysql_install_db --user=mysql
,但是之后的版本已经被mysqld --initialize
替代
把新建的data目录也授权给mysql
chown -R mysql.mysql ./data
修改配置文件
[root@server-133 mariadb]# cat /etc/my.cnf
[client]
socket=/usr/local/mysql/mysql.sock
default-character-set = utf8mb4
[mysqld]
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/mysql.sock
#datadir=/var/lib/mysql
##socket=/var/lib/mysql/mysql.sock
## Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
max_connections=800
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
default-authentication-plugin=mysql_native_password
启动mysql,为了方便启动,作如下操作
[root@ssiy support-files]# cp mysql.server /etc/init.d/mysql
[root@ssiy support-files]# chkconfig --add mysql #设置开机启动
[root@ssiy support-files]# chkconfig --list mysql #查看
[root@ssiy support-files]# systemctl start mysql #启动数据库
配置环境变量
vi /etc/profile
文件中写入:
export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib
这样就可以直接在任意路径使用mysql命令
登录数据库,这时候需要用到初始化时的密码
mysql -uroot -prq%K-:pqm3Z! # 后面是系统生成的密码
进去以后需要修改密码后才能对数据库做进一步操作
alter user 'root'@'localhost' identified by '1234';
修改完密码后,退出,用新密码重新登录,就可以正常操作数据库了