下载地址:点我
执行命令:#tar -xvf mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz
执行命令:# mv mysql-8.0.18 /usr/local/
#groupadd mysql
#useradd -r -g mysql mysql
执行命令:# chown -R mysql:mysql ./
执行命令:# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
ps:中间遇到一个坑,初始化数据库时候报了错
具体错误为:bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
解决方法为:yum install libaio-devel.x86_64
原因是缺少了libaio这个东西 安装就完事了
再次执行初始化命令
# chown -R root:root ./
# chown -R mysql:mysql data
具体命令如下:
# cd support-files/
# touch my-default.cnf
# chmod 777 ./my-default.cnf
# cd ../
# cp support-files/my-default.cnf /etc/my.cnf
执行命令:# vim /etc/my.cnf
编辑内容如下:
[mysqld]
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
socket = /tmp/mysql.sock
log-error = /usr/local/mysql/data/error.log
pid-file = /usr/local/mysql/data/mysql.pid
tmpdir = /tmp
port = 3306
max_allowed_packet=32M
default-authentication-plugin = mysql_native_password
log_bin_trust_function_creators = ON
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
如果后期mysql运行报错,可以直接到log-error = /usr/local/mysql/data/error.log目录下直接查看错误日志
命令:# cat /usr/local/mysql/data/error.log
进入/usr/local/mysql/support-files进行设置
执行命令:
# cd support-files/
# cp mysql.server /etc/init.d/mysql
# chmod +x /etc/init.d/mysql
执行命令:# chkconfig --add mysql
检查状态:# chkconfig --list mysql
命令:# vi /etc/ld.so.conf
内容:/usr/local/mysql/lib
命令:
# vi /etc/profile
# source /etc/profile
内容:export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib
#启动mysql服务
[root@localhost bin]# service mysql start
登录:mysql -hlocalhost -uroot -p
输入密码:刚才记录的密码
–如果出现:-bash: mysql: command not found
–就执行: # ln -s /usr/local/mysql/bin/mysql /usr/bin
--没有出现就不用执行
修改密码:alter user 'root'@'localhost' identified by '123456';
flush privileges;
ps:第二个坑,在启动时出现错误 详情为:
Starting MySQL…The server quit without updating PID file [FAILED]cal/mysql/data/mysql.pid).
问题是my.cnf文件配置问题,千万不能以为加了#就是注释掉了,找一份另一台服务器的my.cnf配置,复制替换稍加修改,解决问题。
若出现Navicat连接不上错误报java.sql.SQLException:null,message from server:"Host ‘’ is not allowed to connect.错误。
原因:远程服务器不允许你的java程序访问它的数据库。所以,我们要对远程服务器进行设置,使它允许你进行连接。
解决方法:①打开mysql控制台(登录mysql),mysql>输入:use mysql;
②输入:show tables;
③输入:select host from user;
④输入:update user set host ='%' where user ='root';
⑤重启mysql,远程服务器就允许程序连接数据库了。
若出现如图问题连接不上
出现这个原因是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password, 解决问题方法有两种,一种是升级navicat驱动,一种是把mysql用户登录密码加密规则还原成mysql_native_password.
解决办法:
①管理员权限运行命令提示符,登陆MySQL(记得添加环境变量)
登录mysql:mysql -u root -p
②修改账户密码加密规则并更新用户密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密规则
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; #更新一下用户的密码
③刷新权限并重置密码:FLUSH PRIVILEGES;
若出现如图所示问题:
解决办法:
①管理员权限运行命令提示符,登陆MySQL(记得添加环境变量)
登录mysql:mysql -u root -p
②mysql>select user,host from user;
注意我的root,host是’%’
你可能执行的是:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123';
改成:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123';
好了,现在所有的都ok了。