CentOS7安装MySQL
得到链接地址(我这个是):https://repo.mysql.com//mysql80-community-release-el8-1.noarch.rpm
然后执行
wget https://repo.mysql.com//mysql80-community-release-el8-1.noarch.rpm
在执行命令的当前目录中会得到mysql80-community-release-el8-1.noarch.rpm的资源包(仓库)
2,安装资源包(仓库)
sudo yum install mysql80-community-release-el8-1.noarch.rpm -y
3,查看资源包(仓库)
4,安装
sudo yum install mysql-community-server -y
该命令默认执行安装8.0版本的mysql,我这里需要的是5.7版本的,所以先修改配置文件,使得安装的版本为5.7.
sudo vim /etc/yum.repos.d/mysql-community.repo
找到[mysql80-community],把enabled=1改成enabled=0
然后新增配置命令
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
保存退出
然后再执行上面的安装命令
5,启动
sudo systemctl start mysqld
查看进程
ps -aux|grep mysql
查看版本
mysql --version
6,链接数据库
各个Linux系统连接数据库的语法都一样
mysql -hloaclhost -uroot -P3306 -p123456
-
-h: host(IP地址) localhost = 127.0.0.1
-
-u: username(用户账号)
-
-p: password(密码)
-
-P: port(端口,默认3306)
在其他版本的LInux里,root用户的默认密码是空,可以不使用密码直接登录。但是在CentOS7里,mysql安装完成以后,会生成一个临时密码。我们需要通过命令查看这个默认密码。
sudo cat /var/log/mysqld.log |grep password
执行
mysql -uroot -p
临时密码登录,无法操作数据库
需要修改root密码
7,修改ROOT密码
命令:alter user root@localhost identified with mysql_native_password by '你的密码';
alter user root@localhost identified with mysql_native_password by 'AbHc123!';
注意:mysql5.7默认安装了密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位
修改完后输入exit;退出数据库
然后重新登陆就可以操作数据库了
8,常用操作
-
创建账号,授予权限
-
8.0之前的版本
GRANT ALL PRIVILEGES ON *.* TO '用户名'@'主机名' IDENTIFIED BY "密码" WITH GRANT OPTION;
flush privileges; --刷新使授权生效
命令解释:
GRANT:授予
ALL PRIVILEGES:所有的权限(也可以选择指定权限)--select,insert,update,delete,drop,index,alter,grant,references,reload,shutdown,process,file。在这十四个权限中选择
主机名:表示允许用户从哪个主机登录,%表示允许从任意主机登录,
*.*:允许操作的数据库和表,星号.星号就是所有数据里的所有表
WITH GRANT OPTION:允许它的权限向下传递 -
8.0之后的版本
CREATE USER '用户名'@'主机名' IDENTIFIED BY ‘密码’; ---------创建账户
CRANT ALL ON *.* TO '用户名'@'主机名' WITH GRANT OPTION; -----------授权 -
创建一个用户,允许个该用户通过主机远程登录,在用上面命令创建一个允许任意主机登录的账号后,如
GRANT ALL PRIVILEGES ON *.* TO 'dark'@'%' IDENTIFIED BY "123456" WITH GRANT OPTION;
flush privileges; -
还要修改mysql配置文件允许远程连接:
# 注意:不同 mysql 版本此配置文件位置和名字可能不同
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf # ubuntu18.04
sudo vim /etc/my.cnf # CentOS7
# 然后找到将bind-address = 127.0.0.1注销 #如果有的话
#bind-address = 127.0.0.1 #这段代码的功能是只允许本机登录
此时一般就可以在其他主机上使用客户端连接mysql数据库了
sudo mysql -u用户名 -h 远端服务器地址 -P3306 -p
设置完后,如果还是不能远程连接,检查一下要服务器的3306端口是否已经打开(可以百度一下如何查看端口,并打开)
-
-
修改密码
update user set authentication_string=password('你的密码') where user="root"
或者
alter user ‘用户名’@'主机名' identified with mysql_native_password by '你的密码';alter对密码有安全规范要求,不能设置简单密码(大小写,数字,字符,无序)
update不做限制
-
查看权限
show grants; ---查看当前用户的权限
show grants for 'abc'@'localhost'; ---查看用户abc的权限 -
回收权限
revoke all privileges on *.* from 'abc'@localhost'; --回收用户abc的所有权限
revoke grant option on *.* from 'abc'@localhost'; --回收权限的传递 -
删除用户
use mysql;
select host, user from user;
drop user 用户名@'%';
第三方工具:mycli
-
安装:sudo pip3 install mycil ubuntu可以直接使用 sudo apt update sudo apt install mycli
-
安装好后连接数据库:mycil -uroot
-
设置回车可以换行:vim ~/.myclirc 把里面的multi_line = False 改成 multi_line = True