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';