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的密码加密方式和可视化工具的加密方式不匹配,
该问题暂时还未解决!!!