mysql使用常见问题

MYSQL4.1权限管理

mysql> use mysql;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

 

Database changed

mysql> show tables;

+---------------------------+

| Tables_in_mysql           |

+---------------------------+

| columns_priv              |

| db                        |

| func                      |

| help_category             |

| help_keyword              |

| help_relation             |

| help_topic                |

| host                      |

| proc                      |

| procs_priv                |

| tables_priv               |

| time_zone                 |

| time_zone_leap_second     |

| time_zone_name            |

| time_zone_transition      |

| time_zone_transition_type |

| user                      |

+---------------------------+

17 rows in set (0.00 sec)

 

登陆访问控制

阶段1:连接证实

服务器基于你的身份和你是否能通过供应正确的口令验证身份来接受或拒绝连接。

你的身份基于2个信息:

l         你从那个主机连接

l         你的MySQL用户名

 

阶段2:请求证实

对在此连接上进来的每个请求,服务器检查你是否有足够的权限来执行它,它基于你希望执行的操作类型。这正是在授权表中的权限字段发挥作用的地方。

 

服务器在存取控制的两个阶段使用在mysql的数据库中的userdbhost

 

权限列表

权限

上下文

select

Select_priv

insert

Insert_priv

update

Update_priv

delete

Delete_priv

index

Index_priv

alter

Alter_priv

create

Create_priv

数据库、表或索引

drop

Drop_priv

数据库或表

grant

Grant_priv

数据库或表

references

References_priv

数据库或表

reload

Reload_priv

服务器管理

shutdown

Shutdown_priv

服务器管理

process

Process_priv

服务器管理

file

File_priv

在服务器上的文件存取

 

 

不同角色所关心的问题(mysql数据库,系统数据库非应用数据库)

应用者: 是否能够访问,host, user, db; 关心字段:Host, User, Passwd

开发者:除应用者有的外,还包括tables_priv, column_priv

 

安全访问

1 root设定密码

shell> mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('new_password')
           WHERE user='root';
mysql> FLUSH PRIVILEGES;

 

或:

shell> mysql -u root mysql
mysql> SET PASSWORD FOR root=PASSWORD('new_password');

 

或:[推荐]

shell> mysqladmin -u root password new_password 

 

2 MYSQL增加新用户权限

你可以通过发出GRANT语句增加新用户:

shell> mysql --user=root mysql
mysql> GRANT ALL PRIVILEGES ON *.* TO monty@localhost
           IDENTIFIED BY 'something' 

 

 

3 忘记root密码

1.先停止mysql

shell >/etc//init.d/mysql stop

 

2.--skip-grant-table 的参数启动mysql

shell >mysql_safe --skip-grant-table&

 

3. 更改root 密码 123456

mysql> UPDATE user SET password=password('123456') WHERE user='root';

mysql> FLUSH PRIVILEGES;

mysql> exit

 

4. 重启mysql

shell >/etc//init.d/mysql restart

 

MYSQL备份

备份一个数据库的另一个方法是使用mysqldump程序:

  1. 为你的数据库做一个完整的备份:

2.            shell> mysqldump --tab=/path/to/some/dir --opt –full 

shell> mysqldump samp_db >/usr/archives/mysql/samp_db. 1999-10-02

第一项—        --tab保存了数据库路径,用于同一台机器或完全相同配置环境的机器.

第二项—        则是将指定数据库安全备份,可用到不同机器配置中,[推荐]

你也可以简单地拷贝所有的表文件(“*.frm”“*.MYD”“*.MYI”文件),只要服务器不在更新任何东西。这两种方法各有优劣,mysqldump与数据库服务协作,安全备份但备份速度较慢.直接copy数据库目录,简单快速但可能备份不完整(对当前数据库操作会遗失数据).

  1. 停止mysqld如果它正在运行,然后以--log-update选项启动它。你将得到一个名为“hostname.n”形式的日志文件, 这里n是随着你每次执行mysqladmin refreshmysqladmin flush-logsFLUSH LOGS语句、或重启服务器而递增的一个数字。这些日志文件向你提供了在你执行mysqldump处后面进行的复制数据库改变的所需信息。

此外,要形成备份日志脚本,要系统自动进行常规备份和渐进式备份.

PS:

压缩备份:

shell> mysqldump samp_db tar zxvf >/usr/archives/mysql/samp_db. 1999-10-02 .tar.gz

 

MYSQL恢复

根据备份的两种方法,选择对应的措施.

l         如果你用直接从数据库拷贝来的文件,将它们直接拷回数据库目录,然而,此时你需要在拷贝文件之前关闭数据库,然后重启它。

l         如果你用mysqldump产生的文件,将它作为mysql的输入。

指定--one-database选项使得mysql只执行你有兴趣恢复的数据库的查询。

shell>mysql --one-database db_name  < update.392

常用的程序

mysqld mysql后台服务器

mysql: mysql客户端

mysqladmin: 用来管理,常用于用户密码设定更改,权限刷新,创建数据库

mysqldump 用来mysql备份

 

参考资料:

mysql4.1中文手册 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值