Linux中安装Mysql
1.服务器及Mysql版本
百度云 CentOS / 8.1 x86_64 (64bit)
mysql Ver 8.0.21 for Linux on x86_64 (Source distribution)
2.执行yum命令进行安装
# 安装
yum install mysql-server
扩展
执行grep的时候可以看到有各种mysql-xx,简单使用的话安装这个mysql-server就好了.比如mysql-devel.x86_64就是给开发mysql的人用的.
3.查看Mysql版本
# 查看版本
mysql -V
4.设置初始密码
启动mysql才能设置密码.
systemctl start mysqld #启动mysqld
systemctl status mysqld #查看 MySQL Server 状态
设置密码
# 替换new-password,密码不包括''
mysqladmin -u root password 'new-password'
#或者
set password for 'root'@'localhost' = password('new-password');
5.Mysql服务启动等操作
systemctl start mysqld #启动mysqld
systemctl stop mysqld #停止mysqld
systemctl restart mysqld #重启mysqld
systemctl enable mysqld #设置开机启动
systemctl status mysqld #查看 MySQL Server 状态
这个时候用Navicat等工具会发现,连接不上,因为root用户默认只允许本机(刚进行安装操作的服务器)上访问.
6.服务器上登录Mysql
mysql -u root -p
# 输入刚才设置的密码
7.设置Mysql用户的ip访问权限
7.1 选择使用库:mysql
现在进入到了服务器的mysql中
# 1.选择数据库mysql
use mysql;
# 2.修改root用户的ip访问权限: %代表所有,默认的localhost只能在本机访问.
#设置用户root可以在任意IP下被访问:
grant all privileges on . to root@"%" identified by "密码";
#或者
update user set host = '%' where user = 'root';
7.2 刷新权限
flush privileges;
其实就是改了数据库mysql下user表的字段值
7.3 成功连接
7.4 命令行中退出
# 输入quit即可
mysql> quit
Bye
[root@yang37 ~]#
8.创建Mysql的其他用户并授权
root用户权限很大,用Navicat之类的第三方连接或者平时写代码时用个小权限的用户就好了.
8.1 语法
GRANT privileges ON dbname.tablename TO 'username'@'host'
-
privileges
用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL
-
dbname
数据库名
-
tablename
表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示
8.2 示例1
#创建用户
CREATE USER 'username'@'%' IDENTIFIED BY 'password';
#用户授权
# db01库table01表: INSER权限
GRANT SELECT, INSERT ON db01.table01 TO 'username'@'%';
# *库*表 ALL权限
GRANT ALL ON *.* TO 'username'@'%';
# maindataplus库*表 ALL权限
GRANT ALL ON maindataplus.* TO 'username'@'%';
#刷新权限
flush privileges;
能否给用户授权也是个权限,如果想让该用户可以授权,用这个命令:
GRANT privileges ON dbname.tablename TO 'username'@'%' WITH GRANT OPTION;
8.3 示例2
#授权用户yang在za7za8这个数据库下有所有的操作权限
grant all privileges on za7za8.* to yang;
#刷新权限
flush privileges;
8.4 扩展
场景一:
由于权限配置项太多了,平时使用自定义用户发现权限不够.
想把root用户访问权限回去%,好在Navicat中操作root加些权限(记录下服务器命令好复制)
# 登录服务器,连接mysql.
mysql -u root -p
# 选择数据库: mysql
use mysql;
# 更新root访问权限 - 任意
update user set host = '%' where user = 'root';
# 刷新权限
flush privileges;
# ----------------------------------
# 更新root访问权限 - 本机
update user set host = 'localhost' where user = 'root';
# 刷新权限
flush privileges;
9.图形化工具
9.1 Navicat
默认显示所有的数据库,在这里可以配置连接时打开哪个具体的数据库.