mysql 存课件_PHP学习mysql课件 高级篇

PHP学习mysql课件 高级篇

更新时间:2008年06月15日 13:09:25   作者:

MySQL数据库管理

数据库的启动与关闭,安全、访问控制和权限,数据库的备份与恢复,导入和导出记录

数据库管理员的职责

服务器的启动与关闭

用户帐户维护

日志文件维护

数据库的备份与拷贝

服务器的优化

数据库管理系统的软件更新

数据目录的安全性

服务器的安全性

灾难恢复

预防性维护

``````````````````````````````````````````````````

数据库的启动与关闭

1、数据库的启动:

方法一:使用service 命令启动MySQL

# service mysqld start

// mysqld是MySQL的守护进程,通过运行它来启动MySQL服务。

方法二:使用mysqld脚本启动MySQL

# /etc/init.d/mysqld start

方法三:使用safe_mysqld实用程序启动MySQL服务,此方法可以使用相关参数

# safe_mysqld&

使用&符号将safe_mysqld放在后台运行。

```````````````````````````````````````````````````````````

校验MySQL是否被启动:

# service mysqld status

//返回如下信息,表示已经启动

mysqld (pid 1663) is running...

//1663是mysqld运行的进程号,可能根据不同系统运行的进程数量而不同

若需要重新启动MySQL可以使用如下命令之一:

# service mysqld restart

# /etc/init.d/mysqld restart

````````````````````````````````````````````````````````

2、数据库的关闭:

可以使用如下命令之一:

#  service mysqld stop

#  /etc/init.d/mysqld stop

#  /mysqladmin shutdown

MySQL管理

修改root管理密码

方法一:

mysql>set password for ‘帐号'@‘主机' = old_password(‘密码');

update mysql.user set password = old_password(‘密码') where host = ‘主机' and user = ‘帐号';

flush privileges;

方法二:

mysqladmin  password  'crq'

用户密码

对于MySQL密码可以使用PASSWORD()和ENCRYPT()函数进行加密

mysql>select PASSWORD(“alex”);

“23fc96e064be0017”

注:ENCRYPT()在Windows上不可用

方法三:使用update语句和password()函数将root口令设置为crp。

mysql> update user set password=password('crq')

-> where user='root';

//返回如下信息,表示授权表user修改成功

Query OK, 2 row affected (0.09 sec)

Rows matched:2  changed:2  warnings: 0

注意:由此种方法是直接对授权表user进行修改,而服务器只有在启动时才会加载授权表中的权限设置,因此必须要使用客户端程序mysql环境下的flush privileges命令或使用管理工具mysqladmin的flush-privileges子命令通知服务器重新加载授权表。

mysql>  flush privileges;   //此时即生效可以使用。

```````````````````````````````````````````````````````````````````

改变数据库存储路径

在Window下,MySQL的所有数据库都保存在“%mysqlroor%\data”目录下。

停止MySQL服务

修改%systemroor%\my.ini文件

[mysqld]

datadir=D:/data

将原目录中的所有文件和文件夹内容,全部移动到新的目录D:/data目录中。

重启MySQL服务

修改MySQL字符集

找到MySQL配置文件my.ini,一般在C:\window\my.ini。

在my.ini文件里面加上“default-character-set=gbk #”或gb2312,utf8

重启MySQL服务

删除匿名用户:

myslq>  delete from user where user=' ';

//返回如下信息,表示匿名用户删除成功

Query OK, 2 row affected (0.03 sec)

添加新的用户权限:

使用grant语句用于授予用户权限,

语法:

GRANT priv_type[(column_list)][,priv_type[(column_list)]…]

ON {*.* | * | db_name.* | db_name.tabl_name | db_name}

TO user_name [IDENTIFIED BY ‘password']

[,user_name [IDENTIFIED BY ‘password']…]

[WITH GRANT OPTION]

创建新用户

制定用户名,最长允许为16个英文字符

制定允许该用户可以访问的数据库和表

制定允许该用户对数据库做什么的操作

制定允许该用户从哪些主机/IP进行远程连接

制定允许该用户对其他用户进行授权或取消授权

例如:添加一个可以从本地主机连接到MySQL服务器的超级用户crq,但是连接时必须使用口令crqpass

mysql> grant all on *.* to crq@localhost identfied by 'crqpass' with grant option;

//返回如下信息,表明权限设置成功

Query OK, 0 rows affected (0.02 sec)

例如:使用同样的方法添加一个可以从其他任何地方连接到MySQL服务器的超级用户crq,但是连接时必须使用口令crqpass

mysql> grant all on *.* to crq@'%' identified by ‘crqpass' with grant option;

授予用户特定的权限:

使用grant语句添加一个可以从本地机连接的MySQL服务器的用户user1,并且只授予其针对sales数据库中employee表的select和insert权限。

mysql> grant select,insert on sales.employee to user1@localhost identified by ‘user1pass';

说明:使用:# mysql –u user1 –puser1pass 登录数据库以后可以做如下操作:

mysql> use sales;    //打开sales数据库

mysql> show tables;    //只能看到employee表

mysql> select * from employee;    //可进行查看操作

mysql> insert into employee …….  //可进行插入操作。

撤销用户权限:

语法:REVOKE priv_type[(column_list)][,priv_type[(column_list)]…]

ON {*.* | * | db_name.* | db_name.tbl_name | db_name}

FROM user_name [,user_name…]

例如:撤消用户user1针对sales数据库中employee表的insert权限:

mysql> revoke insert on sales.employee from user1@localhost;

//返回如下信息,表明权限撤销成功。

Query OK, 0 row in set affected (0.00 sec)

```````````````````````````````````````````````````````````````````````````````````````````

权限更改何时生效

当mysqld启动时,所有的授权表内容被读进存储器并且从那点生效。

用GRANT、REVOKE或SET PASSWORD对授权表施行的修改会立即被服务器注意到。

如果你手工地修改授权表(使用INSERT、UPDATE等等),你应该执行一个FLUSH PRIVILEGES语句或运行mysqladmin flush-privileges告诉服务器再装载授权表,否则你的改变将不生效,除非你重启服务器。

权限更改的影响

当服务器注意到授权表被改变了时,现存的客户连接有如下影响:

表和列权限在客户的下一次请求时生效。

数据库权限改变在下一个USE db_name命令生效。

全局权限的改变和口令改变在下一次客户连接时生效。

数据库的备份与恢复

1、数据库的备份:

A、用mysqldump备份数据库:

语法: mysqldump [OPTIONS] database [table]

实例:

将数据库sales备份成sales_bak030630.sql文件。

# mysqldump –u root –p  --opt sales > sales_bak030630.sql

//返回如下信息,表明备份成功

-rw-r--r-- 1 root root  2296 Jun 29 23:30 sales_bak030630.sql

B、用直接拷贝的方法备份数据库:

不用mysqldump 来备份数据库或表的另一种方法是直接拷贝表文件。通常可利用像cp、tar 或cpio 这样的实用程序来进行。当使用直接拷贝备份( direct-copy backup)方法时,必须确保没有使用这些表。如果在拷贝一个表的同时服务器正在修改它,则拷贝无效。

确保拷贝完整性的最好方法是关闭服务器,拷贝文件,然后重新启动服务器。

2、数据库的恢复:

数据库系统出现崩溃时,应该使用最近的一次备份对数据库进行恢复,如果启用了更新日志,还需要重新执行更新日志中最近一次备份之后对数据库进行修改的任何查询,以尽可能将数据恢复到崩溃时刻所处的状态。

# mysql –u root –p sales 

优化表

在大多数情况下,优化表的做法很值得。当一个表被多次修改,那它的结构将很快变得支离破碎,其结果是导致性能的下降。这个时候可以使用OPTIMIZE   TABLE 命令来刷新,清理出空间。

mysql>OPTIMIZE  TABLE   tablename;

导入和导出记录

INSERT语句不是向表中插入记录的唯一方法,MySQL还允许使用LOAD  DATA  INFILE  命令一次性插入多条记录。这个命令可以从文本文件读出原始数据(该文件可以放置在连接服务器上或者客户端),在列和行界定符号的基础上进行分析,然后自动产生INSERT 语句来向一个表写数据。

导入数据

默认情况下,MySQL认为数据文件是在服务器上,在LOAD DATA INFILE 语句中指定位置。

如果想要使用客户机上的数据,可以在语句中添加LOCAl关键字,告诉MySQL在客户机的文件系统上查找文件。

mysql>LOAD  DATA  LOCAL  INFILE  ‘c:\\data.txt'

INTO  TABLE user

FIELDS TERMINATED  BY  ‘,'  LINES  TERMINATED  BY  ‘\n';

最好在此之前加上如下命令

mysql>LOAD  DATA  LOW_PRIORITY  INFILE  ‘data.txt'  INTO  TABLE  user;

当然还有IGNORE    REPLACE等关键字。

导出数据

如果不指定一个FIELDS子句,缺省值与这样写的相同:

FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'

如果不指定一个LINES子句,缺省值与这样写的相同:

LINES TERMINATED BY '\n'

换句话说,缺省值导致读取输入时,LOAD DATA INFILE表现如下:

在换行符处寻找行边界

在定位符处将行分成字段

不要期望字段由任何引号字符封装

将由“\”开头的定位符、换行符或“\”解释成字段值的部分字面字符

导出数据

相反,缺省值导致在写入输出时,SELECT ... INTO OUTFILE表现如下:

在字段之间写定位符

不用任何引号字符封装字段

使用“\”转义出现在字段中的定位符、换行符或“\”字符

在行尾处写换行符

注意,为了写入FIELDS ESCAPED BY '\\',对作为一条单个的反斜线被读取的值,你必须指定2条反斜线值。

rar.gifphp_mysql_高级.rar

相关文章

1a1b05c64693fbf380aa1344a7812747.png

PHPRPC 是一个轻型的、安全的、跨网际的、跨语言的、跨平台的、跨环境的、跨域的、支持复杂对象传输的、支持引用参数传递的、支持内容输出重定向的、支持分级错误处理的、支持会话的、面向服务的高性能远程过程调用协议。2011-10-10

4f55910a645b073bc4fc65dc10dc14bd.png

PHP调用三种数据库的方法(2)...2006-10-10

0ea3c7666119d5615e582f823fb3fad6.png

人大复印资料处理程序_输入篇...2006-10-10

4f96a78db829b1556ff16de21e013c7a.png

我常用的几个类...2006-10-10

8cc1031babc6aff2319f1c6af8544aa0.png

PHP输出控制功能在简繁体转换中的应用...2006-10-10

0c932a99bb7b6f23c937db507070cc7b.png

首先进入phpmyadmin建立1个数据库命名为db,然后建立几个表.name是用户badwolf的访问记数,IP是存来访IP,new是存数.2008-06-06

cca732bf65a93ed2ec0ac80c638460fe.png

随机广告显示(PHP函数)...2006-10-10

2d9f31f2af7b675a3d153d2b7f1035a7.png

这篇文章主要介绍了PHP数组的定义、初始化和数组元素的显示实现代码,需要的朋友可以参考下2016-11-11

b452cee8ec5cd9e58ab98eba17281e59.png

用在PHP里的JS打印函数...2006-10-10

f4838ec7e2d4da28e0b57d4e852dadd4.png

解决中英文字符串长度问题函数...2007-01-01

最新评论

【完整课件如下】 MySQL从入门到精通 第01章 初始MySQL(共19页).ppt MySQL从入门到精通 第02章 MySQL的安装与配置(共14页).ppt MySQL从入门到精通 第03章 数据库的基本操作(共11页).ppt MySQL从入门到精通 第04章 数据表的基本操作(共26页).ppt MySQL从入门到精通 第05章 数据类型和运算符(共17页).ppt MySQL从入门到精通 第06章 MySQL函数(共76页).ppt MySQL从入门到精通 第07章 查询数据(共48页).ppt MySQL从入门到精通 第08章 插入、更新与删除数据(共10页).ppt MySQL从入门到精通 第09章 索引(共11页).ppt MySQL从入门到精通 第10章 储过程和函数(共19页).ppt MySQL从入门到精通 第11章 视图(共20页).ppt MySQL从入门到精通 第12章 触发器(共11页).ppt MySQL从入门到精通 第13章 用户管理(共25页).ppt MySQL从入门到精通 第14章 数据备份与还原(共21页).ppt MySQL从入门到精通 第15章 MySQL日志(共22页).ppt MySQL从入门到精通 第16章 性能优化(共18页).ppt MySQL从入门到精通 第17章 MySQL Workbench5.2 的使用(共15页).ppt MySQL从入门到精通 第18章 MySQL Replication(共27页).ppt MySQL从入门到精通 第19章 MySQL Cluster(共49页).ppt MySQL从入门到精通 第20章 PHP操作MySQL数据库(共7页).ppt MySQL从入门到精通 第21章 MySQL实战-新闻发布系统数据库设计(共6页).ppt MySQL从入门到精通 第22章 MySQL实战-论坛管理系统数据库设计(共6页).ppt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值