Linux下安装MySQL8
一、删除已存在的MySQL
参考教程:https://www.cnblogs.com/Can-daydayup/p/10873948.html
二、下载安装
官网:https://dev.mysql.com/downloads/repo/yum/
选择red hat版:
复制下载地址:
1.下载镜像
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
2.安装镜像
rpm -ivh mysql80-community-release-el7-3.noarch.rpm
3.升级系统上的MySQL软件包
通过以下命令升级MySQL及其相关组件:
yum update mysql-server
4.安装MySQL服务
yum install mysql-server
如果执行失败,可能是权限不足,可以在命令之前加 sudo ,以管理员权限执行。
三、设置MySQL文件权限
chmod -R 777 /var/lib/mysql
四、初始化MySQL
mysqld --initialize
五、MySQL启动
#启动
service mysqld start;
#重启
service mysqld restart;
#查看状态
service mysqld status;
查看当前MySQL安装版本
mysqladmin --version
登录MySQL
mysql -u root -p
修改密码
#比如说,旧密码是“12345”,新密码是“qwer”,执行以下命令:
方法一:不需要进入mysql命令界面,执行如下命令
$mysqladmin -u root -p'12345' password 'qwer';
方法二:进入mysql命令界面,执行如下命令
mysql> alter user 'root'@'localhost' identified by 'qwer';
首次安装的MySQL会自己生成一个随机的密码,可通过 /var/log/mysqld.log 文件查看
cat /var/log/mysqld.log
修改密码后需要刷新权限
flush privileges;
密码一般在 mysqld.log 文件的前几行
退出MySQL
exit;
#或者
quit;
六、开启远程连接MySQL
1.需要在在登录MySQL之后,创建一个用户用来远程连接
# 其中 username 表示用户名
# % 表示表示所有的电脑都可以连接,也可以设置某个ip地址运行连接
# password 表示密码
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
#如果是新版MySQL,创建用户和权限分配是分开的
创建账户:create user ‘用户名’@’访问主机’ identified by ‘密码’;
赋予权限:grant 权限列表 on 数据库 to ‘用户名’@’访问主机’ ;(修改权限时在后面加with grant option)
例如:
mysql> create user 'root'@'%' identified by 'root';
Query OK, 0 rows affected (0.02 sec)
mysql> grant ALL PRIVILEGES ON *.* to 'root'@'%';
Query OK, 0 rows affected (0.01 sec)
2.执行 flush privileges; 命令立即生效
3.查询数据库的用户(看到如下内容表示创建新用户成功了)
SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
4.开放端口号
firewall-cmd --zone=public --add-port=3306/tcp --permanent # 开放3306端口
firewall-cmd --zone=public --remove-port=3306/tcp --permanent #关闭3306端口
firewall-cmd --reload # 配置立即生效
大功告成
七、可能的报错
在连接的时候可能会报错:Authentication plugin 'caching_sha2_password' cannot be loaded.....
是因为 Navicat 不支持MySQL最新的加密方式
解决办法:
登录MySQL之后,修改账户密码加密规则并更新用户密码:
#修改加密规则 # 其中 username 表示用户名 # % 表示表示所有的电脑都可以连接,也可以设置某个ip地址运行连接 # password 表示密码 mysql> ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #更新一下用户的密码 mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password'; #刷新权限 mysql> FLUSH PRIVILEGES;
再次打开 Navicat 连接MySQL问题数据库就会发现可以连接成功了