mysql8.x 单机安装 问题总结

不打扰是莪最后的温柔 提交于 2019-11-30 07:14:16

 1、下载mysql安装包,解压安装文件,修改名称为mysql

wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz

2、在mysql文件夹下创建data目录

mkdir data

3、创建 mysql 用户组和 mysql 用户

groupadd mysql

useradd -g mysql mysql

4、改变 mysql 目录权限

chown -R mysql:mysql /opt/tools/mysql

5、创建mysql配置文件my.cnf

vim /etc/my.cnf

文件内容如下
[client]
port=3306
socket=/opt/tools/mysql/mysql.sock

[mysqld]
port=3306
user=mysql
socket=/opt/tools/mysql/mysql.sock
basedir=/opt/tools/mysql
datadir=/opt/tools/mysql/data
log-error=/opt/tools/mysql/logs/error.log

6、初始化mysql

1、bin/mysqld --initialize --user=mysql --basedir=/opt/tools/mysql/ --datadir=/opt/tools/mysql/data/

注意此种方式初始化mysql默认密码显示在my.cnf文件中的配置的日志log-error指定的日志文件中,即/opt/tools/mysql/logs/error.log中

找到日志中的 rfUwQep;X4o= 这就是密码
2018-11-02T04:57:08.918454Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: rfUwQep;X4o=

2、bin/mysqld --initialize-insecure --user=mysql --basedir=/opt/tools/mysql/ --datadir=/opt/tools/mysql/data/

-insecure 设置为生成没有密码的root用户

7、启动mysql服务

support-files/mysql.server start

8、修改默认密码

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';

安装过程中遇到的各种问题:

1、启动mysql后没有密码登录不了,root用户空密码登录不了,正常启动MYSQL服务后,敲Linux中root账户和密码进入不去。

注意:skip-grant-table启动无法执行ALTER user 'root'@'localhost' IDENTIFIED BY '123456'

1、在/etc/my.cnf配置文件中加入skip-grant-table,即屏蔽密码验证
vim /etc/my.cnf  

2、在 [mysqld]最后加上skip-grant-tables语句 并保持退出文件

3、重启mysql服务
service mysqld restart

4、启动后登录mysql
mysql -u root -p  

5、查看用户列表
select host, user, authentication_string, plugin from user;
host: 允许用户登录的ip‘位置’%表示可以远程;
user:当前数据库的用户名;
authentication_string: 用户密码;在mysql 5.7.9以后废弃了password字段和password()函数

6、修改密码,如果当前root用户authentication_string字段下有内容,先将其设置为空
use mysql;  
update user set authentication_string='' where user='root';

7、退出mysql, 删除/etc/my.cnf文件最后的 skip-grant-tables

8、重启mysql服务

9、登录mysql终端,提示密码直接敲Enter
mysql -uroot 

10、修改密码
ALTER user 'root'@'localhost' IDENTIFIED BY '123456'

 

2、MySQL 1130 错误,无法远程连接

错误:ERROR 1130: Host 'xxx.xxx.xxx.xxx' is not allowed to connect to thisMySQL serve

错误1130:主机192.168.1.3”不允许连接到thismysql服务

原因:被连接的数据不允许使用 xxx.xxx.xxx.xxx访问,只允许是用 localhost;

1、登录mysql
mysql -u root -p 123456

use mysql;

select 'host' from user where user='root';

update user set host = '%' where user ='root';

flush privileges;

select 'host' from user where user='root';

运行完毕后再次连接测试,若还不行重启mysql服务

 

3、Navicat连接Mysql 出现1251错误

因为mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password

1、修改加密规则
ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;

2、更新一下用户的密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '要修改的密码';

3、刷新权限 
FLUSH PRIVILEGES; 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!