Linux 安装Mysql8

CentOS7 下安装 Mysql8

一、下载Linux版Mysql8压缩包

>> wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.12-el7-x86_64.tar

或者从官网下载mysql包
 

二、解压缩Mysql8压缩文件

1 >> rpm -qa | grep mysql   -- 查看已有Mysql服务 
2 
3 >> rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64  -- 卸载Centos自带Mysql服务   
4 
5 >> tar -xvf mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz -C /user/local    -- 解压

说明:解压后我们发现在 /user/local/mysql-8.0.12-el7-x86_64/ 目录下多出两个压缩文件,其中一个是名称中包含TEST,一个不包含TEST,我们需要不包含TEST的压缩文件,在此执行解压命令即可!

三、创建my.cnf配置文件

>> mkdir /usr/local/mysql-8.0.12-el7-x86_64/data  --创建目录
>> vi /etc/my.cnf  --添加如下内容:
[client]

port=3306

socket=/tmp/mysql-8.0.12-el7-x86_64/mysql.sock

[mysqld]

skip-grant-tables

port=3306

user=mysql

socket=/tmp/mysql-8.0.12-el7-x86_64/mysql.sock

basedir=/usr/local/mysql-8.0.12-el7-x86_64

datadir=/usr/local/mysql-8.0.12-el7-x86_64/data

log-error=error.log

四、创建Mysql用户及用户组

>> groupadd mysql

>> useradd -g mysql mysql

五、创建临时文件MySQL

>> mkdir /tmp/mysql    -- 创建目录

>> chown -R mysql:mysql  /tmp/mysql    -- 执行授权

六、初始化数据库

>> cd /user/local/mysql-8.0.12-el7-x86_64  -- 进入MySQL主目录

>> ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql-8.0.12-el7-x86_64/ --datadir=/usr/local/mysql-8.0.12-el7-x86_64/data/  -- 执行初始化命令,如果没有什么异常提示,即代表初始化成功

初始化成功后控制台会打印root账号默认的密码,记得记录下来

七、启动MySQL服务

>> cd /usr/local/mysql-8.0.12-el7-x86_64

>> ./support-files/mysql.server start -- 启动Mysql服务命令
>> ./support-files/mysql.server restart  -- 重启Mysql服务命令

>> ./support-files/mysql.server stop  -- 关闭MySQL服务命令

八、登录Mysql服务

>> ./bin/mysql -uroot -p

 此时,我们会发现登录不了Mysql服务器,并报如下异常:

 [root@localhost software]# ./bin/mysql -uroot -p  Enter password:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

 解决方法:通过命令

>> vi /etc/my.cnf

 在 [mysqld] 节点中增加 skip-grant-tables 命令后重新登录

下面演示正确修改root密码的步骤

一、如果当前root用户authentication_string字段下有内容,先将其设置为空,否则直接进行二步骤。

>> use mysql;
>> update user set authentication_string='' where user='root'
 

下面直接演示正确修改root密码的步骤:

二、使用ALTER修改root用户密码,方法为 ALTER user 'root'@'localhost' IDENTIFIED BY '新密码'。 如下:

>> ALTER user 'root'@'localhost' IDENTIFIED BY 'root'

此处有两点需要注意:

1、不需要flush privileges来刷新权限。

2、密码要包含大写字母,小写字母,数字,特殊符号。

  修改成功; 重新使用用户名密码登录即可;

注意: 一定不要采取如下形式该密码:

>> use mysql;
>> update user set authentication_string="新密码" where user="root";

 

这样会给user表中root用户的authentication_string字段下设置了newpassword值;

当再使用 ALTER USER 'root'@'localhost' IDENTIFITED BY 'newpassword'时会报错的;

因为authentication_string字段下只能是mysql加密后的41位字符串密码;其他的会报格式错误;

*THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE

 

***************************************************************************Warning*********************************************************************************************

Mysql8远程无法访问,譬如:在其他机器通过SqlYog连接的问题,可能是mysql8的密码加密方式和可视化工具的加密方式不匹配,

该问题暂时还未解决!!!

 

 

 

 

 

 

 

posted @ 2019-10-15 16:37  朗如风9011  阅读(1208)  评论(0编辑  收藏  举报