MySQL安装和使用

mysql8.0.25安装

  • 将安装包推送到centos虚拟机中/opt目录下

  • 检查/tmp临时目录权限
chmod -R 777 /tmp
  • 安装
rpm -ivh mysql-community-common-8.0.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.25-1.el7.x86_64.rpm
  • 安装成功,查看版本
mysql --version

mysql  Ver 8.0.25 for Linux on x86_64 (MySQL Community Server - GPL)
  • 服务初始化
    • 为了保证数据库目录与文件的所有者为mysql登录用户,如果你是以root用户运行mysql服务,需要执行下面的命令初始化
[root@localhost opt]# mysqld --initialize --user=mysql
  • 查看密码
cat /var/log/mysqld.log

  • 启动服务
systemctl start mysqld
  • 设置开机自启动
systemctl enable mysqld.service
  • 设置开机不自启动
systemctl disable mysqld.service
  • 登录到mysql
mysql -uroot -p
  • 修改密码
alter user 'root'@'localhost' identified by '123456'
  • root用户只能本地连接,不能远程连接

  • 远程连接会失败

  • 修改root用户host字段(可访问的地址)%通配符
update user set host ='192.168.46.%' where user = 'root';
  • 刷新权限
flush privileges;
  • 连接成功

mysql5.7安装

  • 将安装包推送到centos虚拟机中/opt目录下

  • 检查/tmp临时目录权限
    • 由于mysql安装过程中,会通过mysql用户在/tmp目录下新建tmp_db文件,所以请给/tmp较大的权限
chmod -R 777 /tmp
  • 安装
rpm -ivh mysql-community-common-5.7.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm --nodeps --force

用户管理

  • mysql默认用户
select user from user;

  • 登录root用户,创建用户
# 'userName'@'host'
create user 'cml'@'%' identified by '123456';

  • 使用cml用户登录数据库
mysql -u cml -p123456;
  • Root用户修改用户,并刷新权限
update user set user = 'cml1' where user = 'cml';
flush privileges;
  • drop删除用户
# 默认删除host为%,如果扇出host为localhost的用户drop user 'cml'@'localhost';
drop user 'cml1';
  • 修改当前用户密码
alter user user() identified by '123123';
  • 修改其他用户的密码
alter user 'cml'@'%' identified by '123456';

权限管理

  • 权限列表
    • CREATE和DROP
      • 可以创建新的数据库和表,或删除(移掉)已有的数据库和表。如果将MySQL数据库中的DROP权限授予某用户,用户就可以删除MySQL访问权限保存的数据库
    • SELECT、INSERT、UPDATE和DELETE
      • 允许在一个数据库现有的表上实施操作
    • SELECT
      • 只有在它们真正从一个表中检索行时才被用到
    • INDEX
      • 允许创建或删除索引,INDEX适用于已有的表。如果具有某个表的CREATE权限,就可以在CREATE TABLE语句中包括索引定义
    • ALTER
      • 可以使用ALTER TABLE来更改表的结构和重新命名表
    • CREATE ROUTINE
      • 用来创建保存的程序(函数和程序),ALTER ROUTINE权限用来更改和删除保存的程序
    • EXECUTE
      • 用来执行保存的程序
    • GRANT
      • 允许授权给其他用户,可用于数据库、表和保存的程序
    • FILE
      • 使用户可以使用LOAD DATA INFILE和SELECT ... INTO OUTFILE语句读或写服务器上的文件,任何被授予FILE权
        限的用户都能读或写MySQL服务器上的任何文件(说明用户可以读任何数据库目录下的文件,因为服务器可以访问这些文件)

  • 授予权限
  • root用户新建dbtest1数据库
  • 给cml用户授权,可以查看和修改dbtest1数据库
grant select,update on dbtest1.* to cml;
  • cml用户可以查看到dbtest1数据库

  • 将所有数据库和表的所有权限赋给cml用户
grant select on dbtest1.* to 'cml'@'%';
  • 查看当前用户权限
show grants;
  • 查看某个用户的权限
show grants for 'cml'@'%';
  • 回收权限
revoke select on dbtest1.* from 'cml'@'%';
  • 回收所有权限
revoke all privileges on *.* from 'cml'@'%';
posted @ 2023-01-29 21:04  youmo~  阅读(68)  评论(0编辑  收藏  举报