linux安装mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz

一、背景

目前大多数公司搭建环境都是使用docker实现容器化部署,但是有时会遇到linux服务器不能上网的场景,比如政府,事业单位的服务器,为了安全是不链接网络的。所以系统搭建都是离线进行的。

本博文就是描述了linux离线安装mysql8.0的过程。

二、准备工作

1.下载mysql8.0 tar包

官方下载地址:https://dev.mysql.com/downloads/mysql/

包下载地址:

linux安装mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz_第1张图片

2.安装

1.解压mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz到/usr/local/mysql

tar -zxvf mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz

cp mysql-8.0.18-linux-glibc2.12-x86_64 /usr/local/mysql -r

2.添加系统的mysql组和mysql用户

groupadd mysql

useradd -r -g mysql mysql

这个时候可能会报一个错误,百度查是缺少什么依赖包,是个很奇怪的错误,我记不得了,但是不是报 groupadd: unable to open group file 这种很好解决的错误。其实不用管,你再执行一次会提示 mysql 组已经存在,所以这个错误不用管了。

到mysql目录下:

cd /usr/local/mysql

修改文件权限:

chown -R mysql:mysql ./

这一步很重要如果没有操作后续会报错,下面再做说明。

3./usr/local/mysql路径创建data文件夹

mkdir data

4.初始化数据库

bin/mysqld –initialize –user=mysql –basedir=/usr/local/mysql –datadir=/usr/local/mysql/data

会自动生成随机密码,记下等下登陆要用

5.修改当前目录mysql的用户权限为root,data文件夹为mysql

chown -R root:root ./

chown -R mysql:mysql data

6.创建配置文件

查看etc/my.cnf 是否有文件my.cnf

如果没有则执行一下操作:

查看有没有 support-files/my-default.cnf这个文件,有的话直接复制到/etc/my.cnf

cp support-files/my-default.cnf /etc/my.cnf

如果没有my-default.cnf这个文件,可以用 touch my-default.cnf 命令创建一个,并配置权限,再复制

chmod 777 ./my-default.cnf

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

7.配置配置文件

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
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

注意:socket路径要配置正确,之前配置的路径是 /usr/local/mysql/tmp/mysql.sock,是错误的,不用自己建立tmp文件夹。其他的对应创建文件就可以了。

8.开机自启

cp support-files/mysql.server /etc/init.d/mysql

chmod +x /etc/init.d/mysql

9.注册服务

chkconfig –add mysql

10.查看是否添加成功

chkconfig –list mysql

linux安装mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz_第2张图片

11.etc/ld.so.conf要配置一个路径,不然报错

vim /etc/ld.so.conf

添加如下内容:

/usr/local/mysql/lib

这个也可以不用加,我安装的时候没有配置这个,也没出问题。

12.配置环境变量/etc/profile

vi /etc/profile

末尾添加如下内容:

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

生效参数 :

source /etc/profile

13.启动服务

service mysql start

可能会报这个类似的错误:

linux安装mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz_第3张图片

当时查看了很多博客,比如:https://blog.csdn.net/zxlhaoren/article/details/88022523   都没有解决我的问题。

后来发现是mysql下的data文件夹权限被设置成了root,所以一直报这个错误,上面的代码图片有说明。

重新执行:

chown -R mysql.mysql /usr/local/mysql/data

再启动服务:

service mysql start

启动成功!

14.登录并修改密码

mysql -uroot -p    cCS<-H=Yu0Os

后面是系统生成的密码

15.修改密码

第一次使用随机密码登陆之后,不能操作数据库,会提示

修改密码:

alter user 'root'@'localhost' identified by '123456';

用新密码登陆mysql:

mysql -uroot -p   123456

这个账号只能localhost访问。

mysql8.0之后添加访问权限用户时要先创建用户,如果希望用户在任意ip都可以访问数据库,就可以先创建这个类型的用户:

mysql> create user 'root'@'%' identified by '123456';

Query OK, 0 rows affected (0.00 sec

再授权:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'  WITH GRANT OPTION;

flush privileges;

16.新root账号在任意ip访问数据库

当然如果linux在内网就只能内网访问了

17.navicat链接mysql

初次用 Navicat 连接本地的mysql是会报错:2059 - Authentication plugin 'caching_sha2_password' cannot be loaded:

出现这个原因是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password, 解决问题方法有两种,一种是升级navicat驱动,一种是把mysql用户登录密码加密规则还原成mysql_native_password. 

解决办法:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';   #更新一下用户的密码 

 

 

本文安装过程参考博客,非常感谢博主的技术分享:

https://blog.csdn.net/weixin_42109071/article/details/89375748

你可能感兴趣的:(linux环境安装)