mysql操作学习笔记

1.用户操作


  • 注意:操作用户本身是需要有权限的。

1.1 新建用户

新建用户需要用户名,密码和允许登录的主机IP;
命令格式:

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

username:用户名;
password:用户密码;
host:表示允许连接到数据库服务的主机,localhost表示本地主机,%通配符表示允许任意主机登录。
* 注意:这里的host会影响到远程登录操作数据库

以下命令创建用户名为liguo,密码为12345678的用户,该用户仅允许通过本地主机登录:

 CREATE USER 'liguo'@'localhost' IDENTIFIED BY '12345678';

1.2 用户授权

通过1.1中的命令创建的用户默认是没有增删改查权限的,需要使用GRANT命令来授权。授权需要制定要授权的用户、所授予的权限和给予操作权限的数据表,命令格式如下:

GRANT privileges ON db_name.table_name TO 'username'@'host'

privileges:要授予的权限,insertdeleteupdateselect对应增删改查,要全部授予可以使用ALL
db_name:要给予操作权限的数据库;
table_name:要给予操作权限的数据表,允许全部数据表可以使用通配符.
可以使用

SHOW GRANTS FOR 'username'@'host';

来查询用户的操作权限。
操作权限变更后,使用FLUSH privileges命令可以在权限修改后不用重启mysql服务立即生效。


1.3 取消授权

使用REVOKE命令撤销,命令格式与GRANT类似:

REVOKE privilege ON db_name.table_name FROM 'username'@'host';

1.4 删除用户

太简单了!

DROP USER 'username'@'host';

1.5 用户信息查询

mysql.user是一个记录用户信息的数据表,里面记录了用户所有的信息,可以使用SELECT命令查询该表格以得到用户信息,使用SHOW COLUMNS FROM mysql.user可以查看数据表的列名。
查看所有用户的所有信息:

SELECT * FROM mysql.user;

查看用户liguo的用户名,主机,查询权限信息:

SELECT user,host,Select_priv FROM mysql.user where user='liguo';

2. 远程连接数据库

mysql服务器处于安全考虑,默认是不允许远程连接数据库的。因此,为了远程登录mysql服务器,需要开放权限,修改配置文件。

2.1 开放用户的远程登录权限(需要root权限)

开放权限后可以使得该用户可以远程登录到该服务器:

GRANT ALL PRIVILEGES ON *.* TO 'liguo'@"%" IDENTIFIED BY "passwd" WITH GRANT OPTION;

修改之后,用户liguo只要使用密码'passwd'就可以从任意主机(%)连接到该数据库了,WITH GRANT OPTION表示该用户具有授权给其他用户的权限。

2.2 修改mysql的配置

将配置文件中的 bind-address = 127.0.0.1 这一行用'#'注释掉,这里注意,不同版本的mysql配置文件可能不一样
我使用的是ubuntu +mysql5.7,配置文件路径为:/etc/mysql/mysql.conf.d/mysqld.cnf
使用sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf找到对应的一行,注释掉后保存即可;

2.3 重启mysql服务

使用 service mysql restart重启服务器使得配置生效。
重启过后,远程客户端通过-h参数指定主机ip即可实现远程连接。

3.增删改查

3.1 建表

CREATE TABLE IF NOT EXISTS table_name 
(
    key_name1 key_type1,
    key_name2 key_type2,
                ...
    key_namen key_typen,
    PRIMARY KEY(key_name)
) default charset=utf8;

key_name:键名
key_type:键类型
PRIMARY KEY(key_name):设置主键
default charset=utf8:设置编码为utf8,这样就能存储中文字符了
注意:要存储中文字符,还需要修改配置文件,在文件中加入以下配置:

[mysqld]
collation-server = utf8_unicode_ci
init-connect = 'SET NAMES utf8'
character-set-server = utf8
[client]
default-character-set = utf8
[mysql]
default-character-set = utf8

修改后重启数据库服务器即可。
另外,使用 SHOW VARIABLES LIKE '%char%;'命令可以查询服务器的字符集编码。

3.2 增加数据

INSERT INTO table_name (key1,key2...keyn) VALUES (value1,value2,value3);

key:要添加的键名
value:要添加的值

3.3 删除数据

DELETE FROM table_name WHERE cause;

cause:记录所满足的条件

3.4 修改数据

UPDATE table_name SET key1=value1,key2=value2 WHERE cause;

3.5 查询数据

SELECT col1,col2..coln FROM  table_name WHERE cause;

col1-n为要查询的列名(键名),可以使用'*'表示通配符。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 10,968评论 0 9
  • 1、第八章 Samba服务器2、第八章 NFS服务器3、第十章 Linux下DNS服务器配站点,域名解析概念命令:...
    哈熝少主阅读 9,178评论 0 10
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 11,304评论 0 10
  • 晚风吹去的 只是昏色的夕阳 天还在 即使变得幽暗 背影带走的 只是无端的期许 梦还在 即使变得渺茫 时光抹去的 只...
    何四金mile阅读 1,477评论 0 1
  • 1、真修行人,以智慧剑破烦恼贼,不但可以跳出五阴,还可以跳出十二入、十八界。这才是真正成就了。成就了之后,才能挑负...
    智囊团阅读 1,868评论 0 0

友情链接更多精彩内容