数据库mysql安装,用户,权限

CentOS安装数据库

  1. 打开mysql官网 下载MySQL Yum Repository的安装包
    CentOS可以使用下载链接下载

    https://repo.mysql.com//mysql80-community-release-el8-1.noarch.rpm

  2. 下载后使用

     sudo yum install 安装包名  
    

    命令 安装mysql repository

  3. 此时若运行install mysql-community-server命令的话会默认安装8.0版本的mysql数据库,因为企业常用的为5.7版本,所有需要修改配置文件,安装5.7版本:

     打开 /etc/yum.repos.d/mysql-community.repo 文件
     将 Mysql 8.0 Community Server里面的enable的值改为0,意思是8.0版本不可用
     然后添加5.7版本的相关配置代码:"
     [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
    
  4. 然后运行

     sudo yum install mysql-community-server 
    

    安装mysql数据库

  5. 运行

     sudo systemctl start mysqld 
    

    启动mysql数据库

     ps -aux|grep -v grep|grep mysql
    

    后台查找mysql进程 查看是否启动成功"

mysql --version 查看mysql版本

mycli

数据库语法高亮等显示工具:mycli

pip install mycli

mycli配置多行模式:
打开当前用户家目录下myclirc文件

sudo vim ~/.myclirc

找到multi_line项,改成True

使用mycli进入数据库:

mycli -u root -p

数据库密码

Ubuntu里的root用户密码是密码,所以可以通过系统的root用户直接访问到mysql服务器

CentOS里需要手动查看临时密码 查找password相关的内容

cat /var/log/mysqld.log |grep password

使用临时密码登录时使用命令会报错

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'show databases' at line 2

使用下面的命令修改用户密码

alter user root@localhost identified with mysql_native_password by '密码(字母大小写、数字、特殊字符组成)';

密码忘记时需要在etc文件里找到mysql的配置文件,不同版本配置文件名不同

centos7中mysql5.x版本为my.cnf

若文件中存在 [mysqld],则直接在下面添加

skip-grand-tables

即可

然后重新启动mysql:

sudo systemctl restart mysqld

此时可以不使用密码直接用root用户登录mysql
执行以下命令更改root用户密码:

update mysql.user set authentication_string=password('你的密码') where user=""root"";

mysql用户权限:

传递权限命令:

GRANT ALL PRIVILEGES on *.* to 'zhangsan'@'localhost' IDENTIFIED BY "1234" WITH GRANT OPTION;


GRANT ALL PRIVILEGES:赋予  所有的权限   
*.*:所有数据库的所有表  
'zhangsan'@'localhost':用户张三允许本机登录  localhost也可以换成%,意思是可以在任意主机登录
IDENTIFIED BY "1234" :张三的密码
WITH GRANT OPTION;:它的权限允许向下传递

ALL PRIVILEGES:
除了所有权限之外还可以指定权限:select/insert/update/delete/create/drop/index/alter/grant/references/reload/shutdown/process/file

flush privileges 刷新权限

修改用户密码:

update mysql.user set authentication_string=password('你的密码') where user="root";

或者:

alter user '用户名'@'主机' identified with mysql_native_password by '你的密码';

查看权限:

show grants;  --->查看当前用户的权限
show grants for 'abc'@'localhost';  ---->查看用户abc的权限

回收用户权限

revoke all privileges on *.* from 'abc'@'localhost'; ---->回收用户abc的所有权限
revoke grant option on *.* from 'abc'@'localhost';  ---->回收权限的传递

数据库用户创建:

创建一个允许任意主机连接的账户

GRANT ALL PRIVILEGES on *.* to zhangsan@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;
flush privileges;

8.0之后的版本创建用户的指令:

GREATE USER '用户名'@'主机' IDENTIFIED BY '密码';  ---->创建用户
GRANT ALL ON *.* TO '用户名'@'主机' WITH GRANT OPTION;   ---->授权

删除用户

drop user 用户名@'%'

修改mysql配置文件:

Ubuntu配置文件位置:/etc/mysql/mysql.conf.d/mysqld.cnf
CentOS配置文件位置:/etc/my.cnf

将 bind-address=127.0.0.1代码注释掉(若代码存在时),让计算机允许mysql远程登录

远程连接命令:

sudo mysql -u用户名 -h远端服务器地址 -p 3306 -p
上一篇:第四章例题


下一篇:Sql Server :第四章作业