linux安装mysql8

1,先去官网下载包,并通过xftp传到虚拟机上

2检查linux有没有安装mysqlrpm -qa|grep -i mysql),有的话卸载

rpm -e mysql-*.*.*-linux(对应文件名)  --nodeps

3,创建mysql 的用户组/用户(有的话,先删除,不然会报错),data目录及其用户目录

userdel mysql           # 删除用户

groupdel mysql          # 删除用户组名

mkdir /home/mysql       # 在home文件夹下创建文件夹mysql

mkdir /home/mysql/data  # 在mysql文件夹下创建文件夹data  

groupadd mysql           # 创建一个名为mysql的用户组       

useradd -g mysql -d /home/mysql mysql  # 在用户组下创建用户

 

 

4,运行解压命令 tar -zxvf  文件名 ,(可以更改解压文件目录和文件名),放在自己想放的位置

5,mysql8不再有my.cnf文件,所以自己创建一个(vim  /etc/my.cnf),做好自己的配置,或者直接通过xftp上传一个my.cnf文件放到/etc下面(my.cnf可以参看下面)

[mysqld]
port=3306
basedir=/home/mysql
datadir=/home/mysql/data
socket=/tmp/mysql.sock
log-error=/home/mysql/data/error.log
pid-file=/home/mysql/data/mysql.pid
user=mysql
tmpdir=/tmp
character_set_server=utf8
default-storage-engine=INNODB
init_connect='SET NAMES utf8'
default_authentication_plugin=mysql_native_password

[client]
port=3306
default-character-set=utf8

6,初始化mysql数据库 ./bin/mysqld --initialize

(网上有的地方写的是./bin/mysqld --user=mysql --basedir=/home/mysql --datadir=/home/mysql/data --initialize然后安装成功会有提示用户root一个随机密码生成,这里没有,这些信息全在my.cnf配置的datadir目录下的日志文件中,其实没多大作用,后面改密码可以直接使用非密码验证登录,将第六步和第五步执行顺序颠倒也行,但是,安装时,需要指定 user ,basedir,datadir.

7,配置mysql服务

cp 文件目录/support-files/mysql.server /etc/init.d/mysqld //复制启动文件

chmod 755 /etc/init.d/mysqld  //增加执行权限

如果想配置服务开机自启,请自行解决


 

然后启动mysql服务service mysqld start

8,初始化mysql用户root的密码

 直接运行mysql -uroot -p,回车,提示输入密码,因为在前面已经在my.cnf配置了skip-grant-tables,跳过了权限验证,所以直接回车就进来了

linux安装mysql8_第1张图片

如果使用使用的全局mysql,会报找不到mysql.sock,创建一个软连接即可


 

另外mysql8 里面没有password字段和PASSWORD函数,密钥默认验证使用的不是mysql_native_password,所以在my.cnf配置default_authentication_plugin=mysql_native_password

改密码步骤:

1,use mysql

2,update user set authentication_string = '123456' where user='root';

这个地方会有问题,因为一开始就在my.cnf指定了default_authentication_plugin=mysql_native_password,而mysql又没有PASSWORD,所以最后存的密码就是123456

 linux安装mysql8_第2张图片

这里可以从其他地方知道123456mysql存的为*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9

所以可以执行

update user set authentication_string = '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' where user='root';

如果想简单,可以将/home/mysql/data文件夹清空,然后修改my.cnf,default_authentication_plugin=mysql_native_password,而mysql又没有PASSWORD这段暂时去掉,重装mysql等密码初始化好了后在加上。

 

3,修改成功后,将my.cnf里面的skip-grant-tables去掉,然后重启mysql生效。

如果登陆的时候提示密码过期,回到第2步,执行下面命令,设置密码不过期

linux安装mysql8_第3张图片

再回到第三步,如果还有问题可以根据所显示问题来解决

 

 

8,mysql远程授权

使用grant命令一直报错,说没有权限

所以干脆改表

host改为%%表示允许远程)

 

刷新一下即可。




你可能感兴趣的:(linux)