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
第一次使用
说明:如果忘记root密码,也可以使用此方法(跳过创建mysqld文件夹的步骤)
- 创建目录并修改权限
sudo mkdir /var/run/mysqld
sudo chmod 777 /var/run/mysqld
- 关闭服务
sudo service mysql stop
- 安全模式+免验证启动服务
sudo /usr/bin/mysqld_safe --skip-grant-tables
- 另外在新开一个终端 sudo -i,连接服务器,不需要密码
sudo -i
mysql -uroot
- 切换到mysql数据库 ( mysql>)
mysql> use mysql;
- 修改密码
在5.7版本开始密码保存字段已经改为“authentication_string”。
mysql> update user set authentication_string = password('123456') where user='root';
- 退出mysql,退出root用户,关闭所有终端,然后查看进程
注意:显示的长的数字串就是pid值
ps -a | grep mysql
- 如果进程里还存在mysql进程,则要强制关闭
使用kill -9 pid 杀死进程,然后在检查一下
sudo kill -9 10740
sudo kill -9 11104
ps -a | grep mysql
- 最后重启mysql服务
sudo service mysql restart
mysql -u root -p
此时,确定的是可以在超级用户模式下正常使用mysql。
如果,在正常状态下,普通用户不能用-uroot登录mysql,可以另外创建mysql用户并对其授权。如下:
MySQL添加用户与授权
以test为例
- 新建用户 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");
- 为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 数据表名; -- 删除表