Linuxcentos7.5二进制安装mysql8.0.23(切勿继续踩坑)

场景

这个量有点大,闲话不多说,都是小细节。。。。开始

首先下载mysql8.0.23

这个你们可以去官网下载800多m,也可以使用我分享的这个

链接:https://pan.baidu.com/s/1S1ZQyjv9pOSr5zBsgt0lRA
提取码:qhdj
复制这段内容后打开百度网盘手机App,操作更方便哦

1.删除之前安装的MySQL包

[root@localhost ~]# rpm -qa | grep mariadb
mariadb-libs-5.5.60-1.el7_5.x86_64
[root@localhost ~]# yum erase -y mariadb-libs-5.5.60-1.el7_5.x86_64

2.解压缩MySQL包

tar -xf mysql-8.0.23-linux-glibc2.12-x86_64.tar.xz

3.重命名并移动到/usr/local/mysql

mv mysql-8.0.13-linux-glibc2.12-x86_64 /usr/local/mysql

4.创建mysql用户和组

groupadd mysql
useradd -r -g mysql -s /sbin/nologin mysql

5.创建数据目录,日志目录,配置文件目录,变更权限

mkdir /usr/local/mysql/data
mkdir /usr/local/mysql/etc
mkdir /usr/local/mysql/log
chown -R mysql:mysql /usr/local/mysql/

6.编辑mysql配置文件

vim /usr/local/mysql/etc/my.cnf
[mysql]
port = 3306
socket = /usr/local/mysql/data/mysql.sock
[mysqld]
port = 3306
mysqlx_port = 33060
mysqlx_socket = /usr/local/mysql/data/mysqlx.sock
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
socket = /usr/local/mysql/data/mysql.sock
pid-file = /usr/local/mysql/data/mysqld.pid
log-error = /usr/local/mysql/log/error.log
#这个就是用之前的身份认证插件
default-authentication-plugin = mysql_native_password
#保证日志的时间正确
log_timestamps = SYSTEM

7.初始化数据库,并查看日志

cd /usr/local/mysql
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
注意如果没有报错这一步可以省略:tail /usr/local/mysql/log/error.log
2019-01-13T20:27:49.270330+08:00 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.13) initializing of server in progress as process 6990
2019-01-13T20:27:53.320375+08:00 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: SV!sgk7?k0i=
2019-01-13T20:27:54.805257+08:00 0 [System] [MY-013170] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.13) initializing of server has completed

记住这个临时密码,后边要用到

8.如果执行初始化报错请看这一建议 如果没有略过就可以

 1. 首先检查自己是否有正在运行的mysql进程   ps-ef | grep mysql

 2.还有一种可能,你这台服务器或者虚拟机以前装过mysql或者没有安装成功,有残留东西,再有一个就是你的my.cnf文件配置的路径有问题

我的解决方案:

①:查看自己上面新建文件夹/etc下的my.cnf文件,看是否有错误
②:删除mysql下新建的data,log文件夹,重新创建重新加载,这里有一个问题如果第二次初始化成功后,可能没有随机生成的mysql密码
再次再给大家说一个命令,查看mysql日志,查看mysql随机密码
一、查看初始密码方法:

1、找到自己的error.log日志文件,执行自己的命令,红色标记的部分为初始化密码。

grep 'temporary password' /data/mysql/error.log 

017-05-04T13:28:34.092370Z 1 [Note] A temporary password is generated for root@localhost: DF<Nk8b7;RZTp

9.设置启动文件,设置环境变量

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
/etc/init.d/mysqld start
Starting MySQL… SUCCESS!
[root@localhost ~]# ps -ef | grep mysql
root 7072 1 0 20:30 pts/0 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/mysqld.pid
mysql 7287 7072 7 20:30 pts/0 00:00:01 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/log/error.log --pid-file=/usr/local/mysql/data/mysqld.pid --socket=/usr/local/mysql/data/mysql.sock --port=3306
root 7334 6821 0 20:30 pts/0 00:00:00 grep --color=auto mysql

配置环境变量

vim /etc/profile
PATH= P A T H : PATH: PATH:HOME/bin:/usr/local/mysql/bin
source /etc/profile

10.这里启动也可能会有问题,可能会有启动mysql报错The server quit without updating PID file! 的错误,如果正常启动请忽略!

解决方案:

解决过程
首先,按着自己思路去查看日志文件,相信大家能看到的最多的内容就是Innodb,这是什么玩意儿?其实日志中的信息基本没啥用,就不浪费太多时间了。

然后,使用最直接的办法——百度。相信很多人搜到的结果都是以下几项:

可能是/usr/local/mysql/data/mysql.pid文件没有写的权限
 解决方法 :给予权限,执行 “chown -R mysql:mysql /var/data” “chmod -R 755 /usr/local/mysql/data”  然后重新启动mysqld!
可能进程里已经存在mysql进程
 解决方法:用命令“ps -ef|grep mysqld”查看是否有mysqld进程,如果有使用“kill -9  进程号”杀死,然后重新启动mysqld!
可能是第二次在机器上安装mysql,有残余数据影响了服务的启动。
 解决方法:去mysql的数据目录/data看看,如果存在mysql-bin.index,就赶快把它删除掉吧,它就是罪魁祸首了。
mysql在启动时没有指定配置文件时会使用/etc/my.cnf配置文件,请打开这个文件查看在[mysqld]节下有没有指定数据目录(datadir)。
 解决方法:请在[mysqld]下设置这一行:datadir = /usr/local/mysql/data
skip-federated字段问题
 解决方法:检查一下/etc/my.cnf文件中有没有没被注释掉的skip-federated字段,如果有就立即注释掉吧。
错误日志目录不存在
 解决方法:使用“chown” “chmod”命令赋予mysql所有者及权限
selinux惹的祸,如果是centos系统,默认会开启selinux
 解决方法:关闭它,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器试试

最后实在不行,和我一样,继续删除data文件,因为我感觉数据库初始化最主要的文件夹是data,每次数据库初始化data就会重新生成一次,我是删了两次,经过了多次初始化,才搞好,具体原因也不知道为什么,有大佬的话,可能在下面解答一下。

11.登录并配置远程登录
[root@localhost ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.13
 
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
 
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
#这里就是重置临时密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456!';
Query OK, 0 rows affected (0.02 sec)
 
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.01 sec)
 
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
 
Database changed
mysql> select host, user, authentication_string, plugin from user;
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
| host      | user             | authentication_string                                                  | plugin                |
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
| localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | mysql.session    | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | mysql.sys        | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | root             | *611725B3AA4055897CDB648E55E0A0EA856389E2                              | mysql_native_password |
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
4 rows in set (0.00 sec)
#这里就可以看到root@localhost这里的密码已经是mysql_native_password方式了
#这就是创建一个远程用户登录
mysql>  create user 'root'@'%' identified by '123456!';
Query OK, 0 rows affected (0.05 sec)
 
mysql> grant all privileges on *.* to 'root'@'%' with grant option;
Query OK, 0 rows affected (0.04 sec)
 
mysql> select host, user, authentication_string, plugin from user;
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
| host      | user             | authentication_string                                                  | plugin                |
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
| %         | root             | *43CAAB27D90B4E33EC75DEEFA02577F7E2BACE93                              | mysql_native_password |
| localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | mysql.session    | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | mysql.sys        | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | root             | *611725B3AA4055897CDB648E55E0A0EA856389E2                              | mysql_native_password |
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
5 rows in set (0.00 sec)
 
mysql> exit

12.mysql8.0的最后一个小细节
  1. 使用图形化连接数据库后进行导入sql文件的时候会报错误1418
    解决方案:

1.在客户端上执行SET GLOBAL log_bin_trust_function_creators = 1;
2.MySQL启动时,加上–log-bin-trust-function-creators选贤,参数设置为1
3.在MySQL配置文件my.ini或my.cnf中的[mysqld]段上加log-bin-trust-function-creators=1

最后感谢其他csdn博主提供的建议,还有两篇文章比较好,我在这里链接出来,根据不同场景,自己看一下
mysql8.0.23 linux(centos7)安装完整教程
centos7.5装mysql8.0_linux centOs7.5安装mysql8.0.23

感谢观看!欢迎留言指导!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值