1、 下载
2、 解压
(1)tar -zvxf mysql-8.0.12-linux-glibc2.12-x86_64.tar 报错
(2)把z去掉
tar -vxf mysql-8.0.12-linux-glibc2.12-x86_64.tar
(3)再解压mysql-8.0.12-linux-glibc2.12-x86_64.tar.xz
需要先安装xz: rpm -ivh xz-4.999.9-0.5.beta.20091007git.el6.x86_64.rpm
tar -xvf mysql-8.0.12-linux-glibc2.12-x86_64.tar.xz
3、重命名解压的文件假,并移动到你想的地方,如
mv mysql-8.0.12-linux-glibc2.12-x86_64 /eking/mysql
4、在/eking/mysql下建一个数据目录
mkdir data #后面初始化的时候要用
5、创建mysql用户和组,并把/eking/mysql目录赋给mysql用户
groupadd mysql
useradd -r -g mysql mysql
chown –R mysql.mysql /eking/mysql
6、初始化
/eking/mysql/bin/mysqld --initialize --user=mysql --basedir=/eking/mysql/ --datadir=/eking/mysql/data/
同时,记下初始密码
7、大小写敏感
没有/etc/my.cnf这个文件就建,可以借鉴参考配置,这步很重要,避免在重启后再配置,这时候无效果。
MySQL8.0想要 大小写不敏感,必须在安装好MySQL后 修改mySQL配置文件设置为不敏感,一旦启动后,再设置是无效的,而且启动报错。如果已经晚了,那必须把MySQL数据库文件全部 删除,修改配置文件再启动。
#让MYSQL大小写敏感(1-不敏感,0-敏感)/etc/my.cnf
lower_case_table_names=1
my.cnf参考配置:
[mysqld]
lower_case_table_names=1
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove the leading "# " to disable binary logging
# Binary logging captures changes between backups and is enabled by
# default. It's default setting is log_bin=binlog
# disable_log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
#
# Remove leading # to revert to previous value for default_authentication_plugin,
# this will increase compatibility with older clients. For background, see:
# https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_default_authentication_plugin
# default-authentication-plugin=mysql_native_password
datadir=/eking/mysql/data
socket=/tmp/mysql.sock
log-error=/var/log/mysqld.log
8、启动
/eking/mysql/bin/mysqld_safe --user=mysql & //启动
9、登录并修改密码
mysql -uroot -p 根据提示把前面记下的初始密码输入进行登录
ALTER USER 'root'@'localhost' IDENTIFIED BY '要修改的密码';
10、创建用户与授权
create user '用户名'@'%' identified by '密码'; #% 表示可以访问的客户端IP,%指任意IP地址
grant all privileges on *.* to '用户名'@'%';
flush privileges; #刷新权限
11、设置开机自启动
cp -a /eking/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld
这样就可以用 service mysqld start 这样的命名启停了
12、注册服务
chkconfig --add mysqld #添加服务
chkconfig --list mysqld #查看服务是否添加成功
13、配置环境变量
vi /etc/profile #编辑profile文件
在最后面加入:export PATH=$PATH:/eking/mysql/bin:/eking/mysql/lib
source /etc/profile #使配置生效
14、远程登陆(解决Navicat 连接报 1251 错误)
出现这个原因是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password, 解决问题方法有两种:一种是升级navicat驱动,一种是把mysql用户登录密码加密规则还原成mysql_native_password。
把mysql用户登录密码加密规则还原成mysql_native_password:
ALTER USER 'root' IDENTIFIED BY '修改的密码' PASSWORD EXPIRE NEVER; //修改加密规则
ALTER USER 'root' IDENTIFIED WITH mysql_native_password BY '修改的密码'; //更新一下用户的密码
FLUSH PRIVILEGES; #刷新权限
15、应用连接MySQL8配置的调整
(1)数据库驱动修改成:com.mysql.cj.jdbc.Driver
(2)连接url串,后面要加上:&useSSL=false&serverTimezone=Asia/Shanghai
(3)如果是springboot的项目,要排除本身的mysql-connector-java