从手工创建MySQL数据库开始学习

    当初学习Oracle时, 曾花了很多时间翻来复去地练这一招, 现在学习MySQL我仍从这儿开始. 在虚拟机(VMWare)上装了一个Redhat AS 4 U1, 到MySQL网站上下载了rpm版本的安装文件(包括客户端和服务器), 版本是:

[root@RH4SRV1 MysqlDB]# rpm -qa | grep MySQL
MySQL-client-community-5.0.37-0.rhel4
MySQL-server-community-5.0.37-0.rhel4

    安装过程就不说了, 主要来练习一下手工建库的过程, 这样安装后, 是没有数据库的, 相应于Oracle安装时选择了不创建数据库这一选项. 首先要准备一下数据文件的目录, 并将这些目录的所有者都改为mysql:mysql, 我使用的目录结构如下:

/MysqlDB/data
/MysqlDB/InnoDB
/MysqlDB/InnoDB/log

    然后连接到mysql用户, 创建一个参数文件/MysqlDB/my.ini, 包括如下几个参数:

[mysqld]
port            = 3306
socket          = /tmp/mysql.sock

datadir=/MysqlDB/data

default-table-type=innodb
innodb_data_home_dir = /MysqlDB/InnoDB/
innodb_data_file_path = mysql_01.dbf:20M
innodb_log_group_home_dir = /MysqlDB/InnoDB/
innodb_log_arch_dir = /MysqlDB/InnoDB/log/
set-variable = innodb_buffer_pool_size=20M
set-variable = innodb_additional_mem_pool_size=2M
set-variable = innodb_log_file_size=5M
set-variable = innodb_log_buffer_size=3M
innodb_flush_log_at_trx_commit=1

    接下来就要来创建数据字典(mysql数据库)了, 用mysql_install_db这个角本, 建完后在到/MysqlDB/data/mysql目录下去看一下有没有mysql表文件生成, 如果没有则在RHAS 4上面可能要跑一下"/usr/sbin/setenforce Permissive"命令, 据初步查阅有关资料, 这应当是一个Bug.

mysql_install_db --defaults-file=/MysqlDB/my.ini

    接下来就可以启动mysql了, 使用mysqld_safe命令:

mysql$ mysqld_safe --defaults-file=/MysqlDB/my.ini
Starting mysqld daemon with databases from /MysqlDB/data

    再开一个会话, 用MySQL客户端去连接一下看看?

mysql$ mysql --socket=/tmp/mysql.sock -u root mysql

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.37-community MySQL Community Edition (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

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)

mysql>

    现在来关闭MySQL数据库, 使用mysqladmin工具.

mysql$ mysqladmin --socket=/tmp/mysql.sock -u root shutdown

    这一步可得多试试.

留言 (2)

安装MySQL最好还是去下载源代码包来安装,编译的时候有很多高级选项可供选择:)

大部分只是更改默认选项而已, 无所谓的.

发表留言:

« Previous | Main | Next »

英语900句 | English 900

  • He's the youngest in the family.
  • 他是一家中最小的.
  • He looks much younger than he is.
  • 他看起来比他实际上年轻得多.
  • I came here when I was 20.
  • 我二十岁来这儿.
  • I started school at the age of 6.
  • 我六岁开始上学.
  • My father is over 60 years old.
  • 我父亲已年过六十了.