linux下mysql8.0.18安装与配置

1、下载mysql安装包到本地

下载地址:点我

2、上传至linux系统/usr/tools/路径下并解压,便于管理。

执行命令:#tar -xvf mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz

3、将解压后的问价夹移动到/usr/lcoal/路径下,便于管理。

执行命令:# mv mysql-8.0.18 /usr/local/

4、创建数据库目录

执行命令:#mkdir /data
在这里插入图片描述

5、添加用户组和用户
#groupadd mysql
#useradd -r -g mysql mysql
6、授权

执行命令:# chown -R mysql:mysql ./
linux下mysql8.0.18安装与配置_第1张图片

7、初始化数据库,自动生成密码需记录等下要用

执行命令:# 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这个东西 安装就完事了
再次执行初始化命令

8、修改/usr/local/mysql 当前目录的用户
# chown -R root:root ./
# chown -R mysql:mysql data
9、复制my-default.cnf这个文件到etc/my.cnf去

具体命令如下:

# cd support-files/
# touch my-default.cnf
# chmod 777 ./my-default.cnf 
# cd ../
# cp support-files/my-default.cnf /etc/my.cnf

linux下mysql8.0.18安装与配置_第2张图片

10、之后配置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

11、设置开机自启动

进入/usr/local/mysql/support-files进行设置
执行命令:

# cd support-files/
# cp mysql.server /etc/init.d/mysql 
# chmod +x /etc/init.d/mysql
12、注册服务

执行命令:# chkconfig --add mysql
检查状态:# chkconfig --list mysql
linux下mysql8.0.18安装与配置_第3张图片

13、etc/ld.so.conf要配置路径,不然报错

命令:# vi /etc/ld.so.conf
内容:/usr/local/mysql/lib

14、配置环境变量

命令:

# vi /etc/profile
# source /etc/profile

内容:export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib

15、登录mysql,需要用到上面的生成的密码

#启动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,远程服务器就允许程序连接数据库了。

若出现如图问题连接不上
linux下mysql8.0.18安装与配置_第4张图片
出现这个原因是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;
linux下mysql8.0.18安装与配置_第5张图片
注意我的root,host是’%’
你可能执行的是:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123';

改成:

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123';

好了,现在所有的都ok了。

你可能感兴趣的:(linux环境部署,linux下安装mysql,mysql环境变量配置,mysql报错)