分类: 服务器与存储
2008-06-13 16:27:13
3. MySQL服务器管理
WINDOWS下执行二进制安装后WINDOWS服务中默认的调用的是mysqld-nt服务器,我们可以在WINDOWS的MySql服务的属性中看到:
"C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt" --defaults-file
="C:\Program Files\MySQL\MySQL Server 5.0\my.ini" MySQL
我们也可以不用WINDOWS的默认MYSQL服务器,而启用mysqld服务器来
启动MYSQL:
C:\Program Files\MySQL\MySQL Server 5.0\bin>mysqld --console 070608 14:12:04 [Warning] Changed limits: max_open_files: 2048 max_connections: 800 table_cache: 619 070608 14:12:05 InnoDB: Started; log sequence number 0 956199 070608 14:12:05 [Note] mysqld: ready for connections. Version: '5.0.27-community' socket: '' port: 3306 MySQL Community Edition (GPL)
如果省略--console选项,服务器向数据目录(默认为C:\Program Files\MySQL \MySQL Server 5.1\data)中的错误日志写入诊断输出。错误日志文件的扩展名为.err。
C:\Program Files\MySQL\MySQL Server 5.0\bin>mysqld
--defaults-file="C:\Program Files\MySQL\MySQL Server 5.0\my.ini" 070608 9:32:34 [Warning] Changed limits: max_open_files:
2048 max_connections: 800 table_cache: 619
如果我们没有执行环境变量和程序变量,mysqld和mysqld-nt都是从配置文件中的[mysqld]和[server]组读取选项。
我们可以执行以下命令来获得MYSQL数据库服务器系统变量:
C:\Program Files\MySQL\MySQL Server 5.0\bin> mysqld --verbose –help
在MYSQL数据库中查看实际使用的服务器系统变量:
mysql> SHOW VARIABLES; mysql> SHOW VARIABLES LIKE 'key_buffer_size'; +-----------------+----------+ | Variable_name | Value | +-----------------+----------+ | key_buffer_size | 32505856 | +-----------------+----------+ 1 row in set (0.06 sec) mysql> show variables like 'sort_buffer%'; +------------------+----------+ | Variable_name | Value | +------------------+----------+ | sort_buffer_size | 10485760 | +------------------+----------+ 1 row in set (0.09 sec) mysql> SET sort_buffer_size = 5 * 1024 * 1024; Query OK, 0 rows affected (0.00 sec) mysql> show variables like 'sort_buffer%'; +------------------+---------+ | Variable_name | Value | +------------------+---------+ | sort_buffer_size | 5242880 | +------------------+---------+ 1 row in set (0.00 sec)
通过以下命令后的运行的数据库服务器的统计和状态指标:
mysql> SHOW STATUS; +-----------------------------------+-----------+ | Variable_name | Value | +-----------------------------------+-----------+ | Aborted_clients | 0 | | Aborted_connects | 0 | | Binlog_cache_disk_use | 0 | | Binlog_cache_use | 0 | | Bytes_received | 144 | | Bytes_sent | 13078 |
MYSQL服务器的系统变量和状态变量很多,我们这里不做太多解释,在以后的优化等章节中我们将会详细讲述一些我们常用的变量及调整。
停止MYSQL:
C:\Program Files\MySQL\MySQL Server 5.0\bin>mysqladmin -uroot -p shutdown Enter password: ******
mysql> create user 'zhouwf'@'localhost' identified by 'zhouwf'; Query OK, 0 rows affected (0.00 sec) mysql> create user 'zhouwf'@'%' identified by 'zhouwf'; Query OK, 0 rows affected (0.00 sec)
(2) 给用户授权
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP -> ON mytest.* TO 'zhouwf'@'localhost'; Query OK, 0 rows affected (0.01 sec) mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP -> ON mytest.* TO 'zhouwf'@'%'; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)
(3) 删除用户
mysql> drop user 'zhouwf'@'localhost'; Query OK, 0 rows affected (0.00 sec) mysql> drop user 'zhouwf'@'%'; Query OK, 0 rows affected (0.00 sec)
(4) 修改用户密码
A、利用mysqladmin工具
C:\Program Files\MySQL\MySQL Server 5.0\bin>mysqladmin -uTEST -p password TTTT Enter password: **** C:\Program Files\MySQL\MySQL Server 5.0\bin>mysql -uTEST -pTTTT mytest Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 68 to server version: 5.0.27-community-nt Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
B、使用MYSQL数据库命令SET:
mysql> SET PASSWORD FOR 'TEST'@'LOCALHOST' = PASSWORD('TEST'); Query OK, 0 rows affected (0.00 sec)
C、使用MYSQL数据库命令GRANT IDENTIFIED BY:
mysql> grant usage on mytest.* to 'TEST'@'LOCALHOST' identified by 'TTTT'; Query OK, 0 rows affected (0.00 sec)
当然我们还可以利用REPLACE命令修改mysql.user表的内容的方式来修改密码,我们不建议这么做,这里也就不给出例子了。
5 MYSQL权限管理
MySQL存取控制包含2个阶段。
阶段1:服务器检查是否允许你连接。
阶段2:假定你能连接,服务器检查你发出的每个请求。看你是否有足够的权限
实施它。例如,如果你从数据库表中选择(select)行或从数据库删除表,服务器确定你对表有SELECT权限或对数据库有DROP权限。
在这里我们不对MYSQL的各个权限做详细的解释,我们在使用的时候可以从MYSQL联机文档中获得更多的详细信息。