MySql教程

数据库学习<三>MySQL

本文主要是介绍数据库学习<三>MySQL,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

基础

  • 连接mysql
    mysql -h 110.110.110.12 -u root -p
    注意:想要成功连接到远程主机,需要在远程主机打开MySQL远程访问权限

  • 退出
    exit

  • 创建新用户,前提是以管理员身份运行(root)
    grant all privileges on *.* to testuser@localhost identified by "123456" ;
    创建新用户,用户名为 testuser, 密码为123456

  • 设置mysql的访问权限,前提是一管理员身份运行

mysql数据权限分配

一般情况下,应用与数据库并不在同一台机器上,这样应用就需要远程访问数据库。然而,缺省状态下,mysql的用户是没有远程访问权限的,这时有两种解决办法:

  • 修改表
    可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改为 "%"
mysql -u root -p;
use mysql;
update user set host = '%' where user = 'root';
elect host, user from user;
  • 授权(推荐)
mysql -h localhost -u root //以管理员身份连接数据库
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION  //赋予任何主机访问数据库的权限
FLUSH PRIVILEGES  //授权之后必须刷新权限才生生效
EXIT //退出
  • 设置指定的用户以指定的密码访问数据库
设置myuser使用mypassword从任何主机连接到mysql服务器的话。
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WI
TH GRANT OPTION;

如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3'IDENTIFIED BY
'mypassword' WITH GRANT OPTION;

FLUSH PRIVILEGES(授权之后必须刷新权限才生生效)

EXIT

修改密码

格式:mysqladmin -u用户名 -p 旧密码 -password 新密码

1.例1:给root加个密码ab12。首先在DOS下进入目录mysqlbin,然后键入以下命令
mysqladmin -uroot -password ab12
注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。
2.例2:再将root的密码改为djg345。
mysqladmin -uroot -pab12 -password djg345

增加新用户

格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码”
例如:
增加一个用户 test1 密码为 abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以 root 用户连入 MySQL,然后键入以下命令:
grant select,insert,update,delete on . to test1@“%” Identified by “abc”;

例如:
增加一个用户 test2 密码为 abc,让他只可以在 localhost 上登录,并可以对数据库 mydb 进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。
grant select, insert, update, delete on mydb.* to test2@localhost identified by “abc”;

如果你不想 test2 有密码,可以再打一个命令将密码消掉。
grant select, insert, update, delete on mydb.* to test2@localhost identified by “”;

显示类的命令

  • 显示数据库列表
    show databases;

  • 显示某个数据库中的表
    use mysql;
    show tables;

  • 显示数据表的结构
    describe 表名;

  • 创建库
    create database 库名;

  • 建表
    use 库名;
    create table 表名 (字段设定列表);

  • 删库和删表
    drop database 库名;
    drop table 表名;

  • 将表中记录清空
    delete from 表名;

  • 显示表中的记录
    select * from 表名;

  • 显示最后一个执行的语句所产生的错误、警告和通知
    show warnings;

  • 只显示最后一个执行语句所产生的错误
    show errors;

数据库备份

mysqldump --opt school>school.bbb
注释:将数据库school备份到school.bbb文件,school.bbb是一个文本文件,文件名任取

数据库自动备份:(待续)

还原和导入

还原/导入数据库,导入过程,进入 mysql 数据库控制台,如 mysql -u root -p
mysql>use 数据库
然后使用 source 命令,后面参数为脚本文件(如这里用到的.sql)
mysql>source d:\dbname.sql
如果提示找不到文件,输完 source 后,可以用鼠标把文件直接拖进命令行窗口

启动跟踪

mysqld --debug

关闭服务

mysqladmin -u root shutdown

启动服务

mysqld --console

安全设置

一、内部安全性-保证数据目录访问的安全
1.1数据库文件。
1.2日志文件。
二、外部安全性-保证网络访问的安全
2.1 MySQL 授权表的结构和内容
2.2 服务器控制客户访问
2.3 避免授权表风险
2.4 不用 GRANT设置用户

这篇关于数据库学习<三>MySQL的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!