mysql数据库的基本介绍与操作(第一篇) - 再生
数据库是按照数据结构来组织/存储/管理数据的仓库.
数据库管理的作用:将数据保存到文件或内存,接收特定的命令,然后对文件进行相应的操作.
如果有了以上管理系统,无须自己再去创建文件和文件夹,而是直接传递命令给上述软件,让其来进行文件操作,这样的系统被称为数据库管理系统.
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言–结构化查询语言(SQL)进行数据库管理.在 WEB 应用方面MySQL是最
好的RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一.
mysql数据库操作
1.连接数据库
a.连接本地数据库: cmd命令行输入:mysql -u 用户名 -p密码 例:mysql -u renwujie -prenwujie 点击Eneter,就可以连接成功.
b.连接远程数据库: cmd命令行输入:mysql -h 远程服务器IP -P 远程服务器端口号 -u 用户名 -p密码 点击Eneter,就可以连接成功.
c.补充:默认情况下,mysql帐号不允许从远程登陆连接,只能从localhost登录连接,可以使用以下两种方法设置mysql数据库允许用户通过远程访问连接.
第一种方法(改表法):通过localhost连接mysql数据库切换到mysql库后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,将”localhost”改称”%”,详细操作如下:
第二种方法(授权法):
I.你想root使用123456从任何主机连接到mysql服务器.GRANT
ALL
PRIVILEGES
ON
*.*
TO
\'root\'
@
\'%\'
IDENTIFIED
BY
\'123456\'
WITH
GRANT
OPTION
;
II.如果你想允许用户renwujie从ip为192.168.50.127的主机连接到mysql服务器,并使用456789作为密码.
补充1:有时候linux服务器与windows防火墙默认禁止3306端口,解决方法:
linux下:
编辑防火墙对应的文件
vi /etc/sysconfig/iptables
增加下面一行:
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT
然后重启linux防火墙服务.
/etc/init.d/iptables restart
这种重启方式只是临时生效,与先service iptables stop(停止防火墙) 后service iptables start(启动防火墙)效果一样.
永久生效的启动方式为:先 chkconfig iptables off 后chkconfig iptables on.
查询防火墙状态: service iptables status
注意:新安装的linux系统中,防火墙默认是被禁止的,一般没有配置过任何防火墙的策略,所以不存在/etc/sysconfig/iptables文件,解决方法如下:
在控制台使用iptables命令随便写一条防火墙规则,如:iptables -P OUTPUT ACCEPT
使用service iptables save进行保存,默认就保存到了/etc/sysconfig目录下的iptables文件中
补充2:以上配置都ok了,远程访问如果还有问题,可以存在以下几种情况:
情况1:修改MySQL的配置文件/etc/mysql/my.cnf,因为默认3306端口只允许本地访问的,注释掉这行#bind-address = 127.0.0.1,重启mysql–/etc/init.d/mysql restart.
情况2:租借的服务器的原因,例如腾讯云,为了安全,需要手动打开端口,就算上面两个步骤都成功,则Navicat for MySQL同样链接不上.此时
进入到腾讯云-管理中心-安全组-新建一个组(可以开放所有的端口,但是不建议这样),新建完后,一定要加入实例.
2.查看数据库/创建数据库
2.1 安装完mysql数据库软件后,数据库系统中默认存在的数据库如下:
mysql——用户权限相关数据库
information_schema——MySQL软件系统本身架构相关数据对应的数据库.
test——用户可用户测试的数据库.
还有另外三个数据库sys performance_schema performace_schema.
以上这6个数据库会在单独的篇幅中介绍.
2.2 创建数据库的方法如下:
create database 库名 default charset 字符集 collate 排序规则
create database db_rwj default charset utf8 collate utf8_general_ci;—-创建库指定utf8字符集,并且使用utf8_general_ci排序规则.utf8_general_ci校对速度快,但准确度稍差(准确度够用,一般建库选择这个).
create database db_rwj DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;—-创建库指定gbk字符集,并且使用gbk_chinese_ci排序规则.
2.3 切换使用数据库的方法:use db_rwj; 显示当前使用的数据库中所有表:SHOW TABLES;
3. 用户管理
创建mysql用户: create user \’用户名\’@\’IP地址\’ identified by \’密码\’; 例子: create user \’rwj1\’@\’%\’ identified by \’rwj123456\’;
删除mysql用户: drop user \’用户名\’@\’IP地址\’; 例子:drop user \’rwj1\’@\’%\’ ;
修改mysql用户名: rename user \’用户名\’@\’IP地址\’ to \’新用户名\’@\’IP地址\’; 例子:rename user \’rwj1\’@\’%\’ to \’rwj2\’@\’%\’;
修改mysql用户密码:set password for \’用户名\’@\’IP地址\’ =Password(\’新密码\’);例子:set password for \’rwj2\’@\’%\’ = Password(\’renwujie\’);
4.权限管理
mysql安装自动会生成一个数据库mysql,这个数据库中存储的就是各种权限表.
Mysql会根据这些权限表的内容为每个用户赋予相应的权限所以我们也是通过这些表来实现管理用户和权限的.
4.1用户权限操作表
赋予用户权限命令的简单格式可以概括为:grant 权限 on 数据库对象 to 用户.
删除用户权限命令的简单格式可以概括为:revoke 权限 on 数据库对象 from 用户;
grant all privileges on *.* to \’renguotao\’@\’%\’; — 赋予用户renguotao所有库的所有权限:
revoke all on *.* from \’renguotao\’@\’%\’; — 解除renguotao用户对所有数据库的授权.
grant all privileges on world.* to \’renguotao\’@\’%\’; — 赋予用户renguotao库world的所有权限
grant select,insert,update,delete on world.* to \’renguotao\’@\’%\’; — 赋予用户renguotao对数据库world的增删改查权限
grant select on world.* to \’renguotao\’@\’%\’; — 赋予用户renguotao授予数据库world所有表的查询权限.
revoke select on world.* from \’renguotao\’@\’%\’; — 删除用户renguotao的数据库world所有表的查询权限.
grant select(id,name) on world.city to \’renguotao\’@\’%\’; — 赋予用户renwuguo数据库world表city对字段id与name的查询权限.
revoke select(id,name) on world.city from \’renguotao\’@\’%\’;— 删除用户renwuguo的数据库world表city对字段id与name的查询权限.
grant execute on procedure world.pr_add to \’renguotao\’@\’%\’;– 赋予用户renguotao的对数据库world执行存储过程pr_add的权限
grant execute on function world.fn_add to \’renguotao\’@\’%\’ ;– 赋予用户renguotao的对数据库world执行函数fm_add的权限
revoke execute on function world.pr_add from \’renguotao\’@\’%\’;– 删除用户renguotao的对数据库world执行存储过程pr_add的权限
revoke execute on function world.fn_add from \’renguotao\’@\’%\’;– 删除用户renguotao的对数据库world执行函数pr_add的权限
show grants for \’用户\’@\’IP地址\’ ;查看用户权限.
注意:grant, revoke 用户权限后,该用户只有重新连接 MySQL 数据库,权限才能生效.