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;
来源:oschina
链接:https://my.oschina.net/u/2902377/blog/2396148