MYSQL连接,权限,用户权限与增删改查, mysql5.7与phpmyadmin的系列问题

mysql安装好并不意味着所有的可以正常的使用,通常还要进行一些权限,远程连接等的配置才可以

一、登录mysql控制台

1.1 正常登录mysql控制台

输入:

mysql -u root -p

接下来会让输入密码,新安装的mysql默认没有密码,直接回车就进入了控制台, 设置了密码的输入密码即可进入
注:
无密码可以直接输入

mysql

回车进入

在这里插入图片描述

1.2 忘记密码登录

1.进入mysql的配置文件
在mysql5.6及之前的版本输入:

vim /etc/mysql/my.cnf

mysql5.7输入:

vim /etc/mysql/mysql.conf.d/mysqld.cnf

2.找到[mysqld]段,并加入一行“skip-grant-tables”,wq保存退出
MYSQL连接,权限,用户权限与增删改查, mysql5.7与phpmyadmin的系列问题_第1张图片
3、重启mysql服务,进入mysql控制台

service mysql restart
mysql -u root -p

直接回车,回车进入,不用输密码

注意:进入后修改用户密码,退出后把刚才在配置文件中添加的那句代码删除,重启服务,不然还是可以无密码进去,危险

二、mysql用户的增删改查与权限控制

2.1 查看mysql的用户

 select host, user, plugin from mysql.user;

在这里插入图片描述
注 :
host : 用户作用域,
user: 用户名
plugin: 密码验证方式

2.2 创建用户

CREATE USER 'username'@'host' IDENTIFIED BY 'password'

例:

CREATE USER 'test'@'%' IDENTIFIED BY '123456'

注:
username:要创建用户名
host:用户的作用域,即可以通过那些ip登录,%通配全部,要仅本机登录为‘localhost’
password:用户密码

2.3 设置、修改密码:

在未登录控制台时,修改用户密码:

mysqladmin -u root -p password  123456

回车输入原密码,原来没有密码直接回车

登录控制台后修改密码

set password for 'username'@'host' = password('password')

例:

set password for 'test'@'%' = password('123456')

注:
username:要修改密码用户名
host:用户的作用域,
password:用户密码

2.4 删除用户

DROP USER 'username'@'host';

例:

DROP USER 'test'@'%';

注:
username:要删除用户名
host:用户的作用域,

2.5 用户权限的授予

GRANT privileges ON databasename.tablename TO 'username'@'host'

例:

GRANT all ON *.* TO 'test'@'%'


privileges :权限类别 SELECT,UPDATE等,全部权限 用 all
权限类别:
Alter       修改表和索引
  Create      创建数据库和表
  Delete      删除表中已有的记录
  Drop    删除数据库和表
  INDEX      创建或抛弃索引
  Insert      向表中插入新行
  REFERENCE   未用
  Select     检索表中的记录
  Update      修改现存表记录
  FILE       读或写服务器上的文件
  PROCESS    查看服务器中执行的线程信息或杀死线程
  RELOAD     重载授权表或清空日志、主机缓存或表缓存。
  SHUTDOWN   关闭服务器
  ALL       所有;ALL PRIVILEGES同义词
  USAGE     特殊的“无权限”权限
databasename:可以操作的数据库,*通配所有
tablename :数据库中可以操作的表,*通配所有
username:授予权限的用户名
host:用户的作用域,

注意:

只有root用户才能给其他用户权限,若想用户A可以给用户B权限需要在赋权限时加上 ‘WITH GRANT OPTION;’
即:

GRANT all ON *.* TO 'test'@'%' WITH GRANT OPTION;

2.6撤销用户权限

REVOKE privilege ON databasename.tablename FROM 'username'@'host';

例:

REVOKE all ON *.* FROM 'test'@'%';


privileges :权限类别 SELECT,UPDATE等,全部权限 用 all
databasename:撤销权限的数据库,*通配所有
tablename :撤销权限的表,*通配所有
username:撤销权限的用户名
host:用户的作用域,

三、root用户无法登陆phpmyadmin的问题,mysql5.7与phpmyadmin的兼容性问题

3.1root用户无法登陆phpmyadmin的问题

在查看用户时,如果没有修改过,root 用户的plugin应该如下图所示为:auth_socket,是需要插件的,简单的方式便是修改

在这里插入图片描述

update user set plugin='mysql_native_password' where user='root';
flush privileges;

第一句代码都应该明白,更改用户root的plugin
第二句代码意思是刷新用户权限,注意。不刷新是修改不成功的

3.2 mysql5.7与phpmyadmin的兼容性问题

若登录phpmyadmin后报这个错误:
phpmyadmin - count(): Parameter must be an array or an object that implements Countable
解决办法:

vim /usr/share/phpmyadmin/libraries/sql.lib.php

进入sql.lib.php 查找 count($analyzed_sql_results[‘select_expr’

/count($analyzed_sql_results['select_expr'

把count($analyzed_sql_results[‘select_expr’]) == 1用括号括起来,即
MYSQL连接,权限,用户权限与增删改查, mysql5.7与phpmyadmin的系列问题_第2张图片

你可能感兴趣的:(mysql)