Linux安装和使用MySQL Server 5.7以及密码重置

OS:Ubuntu 18.04
MySQL Server version: 5.7.26

安装

在线状态,终端安装:

    sudo apt-get install mysql-server
    sudo apt-get install mysql-client
    sudo apt-get install libmysqlclient-dev

这里可能需要更新软件或者修复依赖关系

    sudo apt-get update
    sudo apt-get -f install

检验MySQL状态

sudo /etc/init.d/mysql status   

Linux安装和使用MySQL Server 5.7以及密码重置_第1张图片

第一次使用

说明:如果忘记root密码,也可以使用此方法(跳过创建mysqld文件夹的步骤)

  1. 创建目录并修改权限
sudo mkdir /var/run/mysqld
sudo chmod 777 /var/run/mysqld
  1. 关闭服务
sudo service mysql stop
  1. 安全模式+免验证启动服务
sudo /usr/bin/mysqld_safe  --skip-grant-tables

Linux安装和使用MySQL Server 5.7以及密码重置_第2张图片

  1. 另外在新开一个终端 sudo -i,连接服务器,不需要密码
	sudo -i
	mysql -uroot
  1. 切换到mysql数据库 ( mysql>)
mysql> use mysql;
  1. 修改密码
    在5.7版本开始密码保存字段已经改为“authentication_string”。
mysql> update user set authentication_string = password('123456') where user='root';
  1. 退出mysql,退出root用户,关闭所有终端,然后查看进程
    注意:显示的长的数字串就是pid值
ps -a | grep mysql

mysql pid

  1. 如果进程里还存在mysql进程,则要强制关闭
    使用kill -9 pid 杀死进程,然后在检查一下
sudo kill -9 10740
sudo kill -9 11104
ps -a | grep mysql
  1. 最后重启mysql服务
sudo service mysql restart
mysql -u root -p

此时,确定的是可以在超级用户模式下正常使用mysql。
如果,在正常状态下,普通用户不能用-uroot登录mysql,可以另外创建mysql用户并对其授权。如下:

MySQL添加用户与授权

以test为例

  1. 新建用户 test
    登录到mysql -uroot ,用 use mysql 切换到mysql数据库,插入新用户“test“信息:
    说明:"%",表示在任何一台电脑上都可以登录。
mysql> insert into mysql.user(Host,User,authentication_string,ssl_cipher,x509_issuer,x509_subject) values("%","test",password("123456"),"N","N","N");
  1. 为test用户授权
    说明:授权test用户拥有所有数据库(除了mysql) 的 所有权限。
    更多权限问题参见MySQL数据库user表。
mysql> grant all privileges on *.* to test@"%" identified by "123456";
mysql> grant all privileges on *.* to test@localhost identified by '123456';
mysql> flush privileges;                    -- 刷新权限
mysql> select * from user \G;           -- 可以查看到用户的权限

MySQL删除用户

删除用户的本质,就是在user表中,删除用户那一行数据
进入数据库use mysql

mysql> Delete from user Where User='test' and Host='%';   -- 先查好用户的信息,避免删错
mysql> flush privileges;                    -- 刷新权限
mysql> drop database testDB;         -- 删除用户的数据库

删除账户及权限:

mysql> drop user 用户名@'%';
mysql> drop user 用户名@localhost; 

MySQL部分基本语句

mysql>show database;    -- 列出所有数据库

mysql>use '数据库名';    -- 切换数据库

mysql>show tables;    -- 列出所有表

mysql>describe 表名;    -- 显示数据表结构

mysql>drop database 数据库名;    -- 删除数据库

mysql>drop table 数据表名;    -- 删除表

你可能感兴趣的:(Linux系统)