mysql 安装和使用

邱秋 • 2018年01月26日 • 阅读:1663 • mysql

Mysql 安装和使用

查看Linux版本

cat /etc/*release

mysql57-community-release-el7.rpm 57代表mysql版本为5.7 el7代表Linux版本为7(列表没有7.6版本的,选择大版本)

mysql80-community-release-el7.rpm 80代表mysql版本为8.0

下载/安装 mysql 源

查看本地源

ls /etc/yum.repos.d/ -l
#1 先去https://repo.mysql.com/ 下载最新的repo源
$ wget https://repo.mysql.com/mysql80-community-release-el7.rpm

#2 安装mysql80-community-release-el7.rpm 包
$ sudo rpm -ivh mysql80-community-release-el7.rpm

#假如报错提示冲突的话, 先查询下是不是已经安装过了
$ rpm -qa | grep mysql
#有的话干掉他  --nodeps 强制卸载
$ rpm -e xxx (--nodeps) #xxx为冲突的rpm名称

如果安装遇到秘钥过期的问题:

Failing package is: mysql-community-libs-5.7.42-1.el7.x86_64
GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

重新安装源

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

安装

$ sudo yum install mysql-community-server #安装
$ service mysqld start #启动
$ sudo service mysqld status #检查MySQL服务状态

$ sudo grep 'temporary password' /var/log/mysqld.log #查看初始密码


$ mysqld -V  #查看版本

重置密码

$ mysql -u root #需要输入初始密码

#修改root登录密码,注意要切换到mysql数据库,使用use mysql
$ ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';

远程登录

# 需要更改权限才能实现远程连接MYSQL数据库  

$ mysql -h localhost -uroot -p #输入密码登录
mysql> use mysql;   #此DB存放MySQL的各种配置信息
mysql> select host,user from user; #查看用户的权限情况
mysql> select host, user, password from user;
mysql> update user set host = '%' where user ='root';
# %表示是所有的外部机器,如果指定某一台机,就将%改为相应的机器名;‘root’则是指要使用的用户名

mysql> flush privileges; #运行此句才生效,或者重启MySQL

最后一步, 在服务器防火墙配置加入规则 开放 3306 端口.

常见问题

ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client

mysql -u root -p  #输入密码登录

#yourpassword 是你的数据库账户密码,root和host也是
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

#大意是8.0.4开始mysql引入一个caching_sha2_password模块作为默认身份验证插件,数据库连接时验证身份的工作方式(handshake process)会与以往不同。

ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'localhost'


mysql -u root -p
mysql> use mysql;
mysql> select user,host from user;

+------------------+-----------+
| user             | host      |
+------------------+-----------+
| root             | %         |
| admin            | localhost |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| zhangj           | localhost |
+------------------+-----------+

#注意root,host是'%',你可能执行的是:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123';
# 改成:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123';

我,秦始皇,打钱!