linux安装MySQL8.0版本数据库
准备工作:
如果环境中已有数据库先卸载数据库服务(以下为mariadb为列):
1. 停止数据库服务:
systemctl stop mariadb.service
2. 卸载数据库服务:
yum remove mariadb mariadb-server
注意:删除/var/lib/mysql文件下的所有文件,不然会出现安装后root账户密码问题。
删除命令:
rm -ef /var/lib/mysql
完成上述操作后,进行安装MySQL8.0版本数据库
mysql8.0 rpm文件
1. 下载mysql的repo源,下载地址:
进入linux系统,输入指令:
wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
2. 安装mysql-community-release-el7-5.noarch.rpm包
输入指令:
sudo rpm -ivh mysql80-community-release-el7-1.noarch.rpm
3. 安装mysql
输入指令:
sudo yum install mysql-server
中间提示就一直Y就好了,等到出现Complete!则表示安装完成。根据提示安装就可以了,不过安装完成后没有密码,需要重置密码.
4. 登录时有可能报这样的错:ERROR2002 (HY000): Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘ (2),原因是/var/lib/mysql的访问权限问题。下面的命令把/var/lib/mysql的拥有者改为当前用户:
输入指令:mysql-u root
这时候会出现ERROR 2002(HY000):报错
输入指令:
sudo chown -R root:root /var/lib/mysql
继续输入指令:
重启MySQL服务器:
service mysqld restart
等重新完成后在输入mysql -u root 就可以看到如下,但是现在又提醒密码错误的信息,输入指令获取随机密码。
生成随机密码
输入指令:
grep 'temporary password' /var/log/mysqld.log
而等用新密码之后再操作数据库之后会报出这样的问题,当我去查询用户的时候报这个错误:You must reset your password using ALTER USER statement beforeexecuting this statement
大致意思是说:在执行此语句之前,必须使用ALTE USER语句重设密码。
然后我们需要设置新密码
ALTER USER "root"@"localhost" IDENTIFIED BY "********";
5. 如果出现密码登陆不上,通过强制手段实现密码调整
5.1 从/etc/my.cnf 配置文件中加入skip-grant-tables
编辑my.cnf文件(如果是windows系统编辑my.ini文件),
vim /etc/my.cnf
重启MySQL服务:
service mysqld restart
输入mysql或mysql -uroot进入MySQL操作命令界面。
修改用户密码:
alter user 'root'@'localhost' IDENTIFIED BY 'YourNewPass@123'
修改成功后去除my.cnf中的权限开发语句,重启MySQL服务,使用正常权限进入数据库
mysql -uroot -p
6. 创建数据库,创建用户,对用户对应数据库授权
创建数据库:
create database medicare;
创建用户:
CREATE USER medicare@'%' IDENTIFIED BY 'Mda@xxxxx';
注意:有的可能会出现密码简单不允许创建
为用户对应数据库授权:
可用的权限:
ALL: 所有可用的权限
CREATE: 创建库、表和索引
LOCK_TABLES: 锁定表
ALTER: 修改表
DELETE: 删除表
INSERT: 插入表或列
SELECT: 检索表或列的数据
CREATE_VIEW: 创建视图
SHOW_DATABASES: 列出数据库
DROP: 删除库、表和视图
grant all privileges on 数据库名称.* to 数据库用户名@‘授权范围’ identified by ‘数据库用户名密码’;
grant all privileges on wxactivity.* to mysqluser@'%' identified by 'mysqluseradmin';(这是例子,%代表授权全网,localhost代表授权本机)
grant all privileges on 数据库.* to xxx@'%';
移除权限:
REVOKE all privileges ON 数据库.* FROM xxx@';
刷新权限:
flush privileges;
7.使用远程连接的过程当中出现连接失败解决方案
因为当前数据库版本比较高,我当前使用的事MySQL8.0,远程连接时会报错:2059 - Authencation plugin ‘caching_sha2_password’ cannot be loaded:,这是MySQL新版本的校验认证方式“caching_sha2_password”,若想在MySQL8.0版本中继续使用旧版本中的认证方式需要在my.cnf 文件(windows下为my.ini文件) 中配置并重启。
找到:default_authentication_plugin=mysql_native_password,打开注解
重启服务:
service mysqld restart
再次远程连接,会出现:1045 - Access denied for user ‘root’@‘xxx’ (using password: YES) 错误,xxx:可能是IP、localhost、::1等,如果你的mysql服务中user表中的host是’%'那么就是ip,如果是’localhost’就是localhost等。
进入MySQL命令窗口后,执行命令:
select user,plugin from user where user='root';
你会看到加密认证方式是:caching_sha2_password
将其改为:mysql_native_password 加密认证模式即可。
alter user '用户名'@'%' identified with mysql_native_password by '用户密码';
连接成功。
本篇文章安装MySQL主要参考:
致谢!