数据库学习<三>MySQL
2021/10/27 19:11:02
本文主要是介绍数据库学习<三>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的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-02MySQL 3主集群搭建
- 2024-12-25如何部署MySQL集群资料:新手入门教程
- 2024-12-24MySQL集群部署资料:新手入门教程
- 2024-12-24MySQL集群资料详解:新手入门教程
- 2024-12-24MySQL集群部署入门教程
- 2024-12-24部署MySQL集群学习:新手入门教程
- 2024-12-24部署MySQL集群入门:一步一步搭建指南
- 2024-12-07MySQL读写分离入门:轻松掌握数据库读写分离技术
- 2024-12-07MySQL读写分离入门教程
- 2024-12-07MySQL分库分表入门详解