文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>unix下安装MySQL

unix下安装MySQL

时间:2007-02-17  来源:PHP爱好者

你必须执行基本的指令安装MySQL源码包(一个未解包的 tar 文件):成为 root, 用su 命令 

---------------------------------------------------------------- 
$ su 
--------------------------------------------------------------- 

改变路径进入安装文件目录。 (使用 /tmp/download/) 

-------------------------------------------------------------------------------- 
# cd /tmp/download/ 
-------------------------------------------------------------------------------- 

用下列命令展开文件。 

-------------------------------------------------------------------------------- 
# gunzip -d -c mysql-3.22.xx.tar.gz | tar xvf 
-------------------------------------------------------------------------------- 

进入新目录. 这在解压过程中被创建。 

-------------------------------------------------------------------------------- 
# cd mysql-3.22.xx 
-------------------------------------------------------------------------------- 

现在可以对为MySQL服务器运行"configure"指令。你可以在执行configure命令时指定很多选项。使用configure –help,可以帮助你了解所有配置时的选项。选择--prefix指定直接安装路径。Configure将检查你的编译器和其他一些东西。如果发现错误,可以通过查看config.cache来检查。 

-------------------------------------------------------------------------------- 
# configure --prefix=/usr/local/mysql 
-------------------------------------------------------------------------------- 

在完成 Config 后,通过执行下面命令,可以得到实际二进制文件。 

-------------------------------------------------------------------------------- 
# make 
-------------------------------------------------------------------------------- 

现在可以准备安装所有的二进制文件。 运行下列指令在configure –prefix选择的目录下安装二进制文件。 

-------------------------------------------------------------------------------- 
# make install 
-------------------------------------------------------------------------------- 

安装完二进制文件后, 就可以创建mysql表,该表可以规定使用权限。 

-------------------------------------------------------------------------------- 
# scripts/mysql_install_db 
# cd /usr/local/mysql/bin 
# ./safe_mysqld & 
# ./mysqladmin -u root password ew-password 

-------------------------------------------------------------------------------- 

注意: /usr/local/mysql 是选择安装MySQL服务器的路径. 你也可以安装在其它路径。 

为了确保MySQL能正常工作,需要运行一些简单的测试. 如果输出结果: BINDIR = /usr/local/mysql/bin,就证明MySQL工作正常. BINDIR 的值与上面选择的prefix 选项有关。 

-------------------------------------------------------------------------------- 

# BINDIR/mysqlshow -p 
+---------------+ 
| Databases | 
+---------------+ 
| mysql | 
+---------------+ 

-------------------------------------------------------------------------------- 

一旦你安装了MySQL, 它将会自动生成两个数据库。一个用于管理用户、主机和服务器数据库权限。另一个是测试数据库(test database)。我们可以使用测试数据库。 但是,我们想简单快捷的向你介绍MySQL中一些可使用的指令的概貌。这还可以确保 root 被设置为能够完全访问服务器,例如: root可以允许创建数据库、表单等.. 所以我们将创建一个test2数据库用于以后的测试。在通过指令进入MySQL前,系统将提示输入新创建的root口令。 应该记得你已改过 root的口令了。 

-------------------------------------------------------------------------------- 

# mysql -u root -p 
mysql> show databases; 
+----------------+ 
| Database | 
+----------------+ 
| mysql | 
| test | 
+----------------+ 
mysql> create database test2; 
Query OK, 1 row affected (0.00 sec) 

-------------------------------------------------------------------------------- 

按照下面两段代码,选择使用新的数据库,并创建一个名称为tst_tbl的表, 它有两个字段。第一个字段(field 1)为id 字段,通过它可以看到记录的id号。从本质上看,这只是一列纯数字。第二个字段为名称字段,在其中可以存储书的名称。这些字段的格式为: field 1 (id) 为长度为3的整数型(int), field 2 (name)为长度为50的字符串型(char)。 我们对id的赋值可以对数据查找和标引。 

-------------------------------------------------------------------------------- 

mysql> use test2; 
Database changed 
mysql> CREATE TABLE books ( id int(3) not null 
-> auto_increment, name char(50) not null, 
-> unique(id), primary key(id)); 
Query OK, 0 rows affected (0.00 sec) 

-------------------------------------------------------------------------------- 

现在用下面命令检查库是否正确。 

-------------------------------------------------------------------------------- 

mysql> show tables; 
+---------------------+ 
| Tables in test2 | 
+---------------------+ 
| books | 
+---------------------+ 
1 row in set (0.00 sec) 

mysql> describe books; 
+-------+-------------+------+------+----------+----------------+ 
| Field | Type | Null | Key | Default | Extra | 
+-------+-------------+------+------+----------+----------------+ 
| id | int(3) | | PRI | 0 | auto_increment | 
| name | char(50) | | 
+-------+-------------+------+------+----------+----------------+ 
2 rows in set (0.00 sec) 

-------------------------------------------------------------------------------- 

注意:describe指令基本描绘出表的布局。 好酷呀! 
OK, 下面介绍一些真正有用的SQL指令:如何在数据库中插入和选择数据。现在可以向新建表中加入几条记录。需要记住,这些只是书籍名称的简单记录,但当你对SQL有足够的经验就可以建立大型电子商务站点的复杂数据库。让我们创建两个假想的书籍的记录。一条记录是"PHP 4 Newbies"书的名称,另一条记录为Linux下一个有用的书"Red Hat Linux 6 Server"的名称,由Mohammed J. Kabir著。 

-------------------------------------------------------------------------------- 

mysql> INSERT INTO books (name) values(PHP 4 Newbies); 
Query OK, 1 row affected (0.00 sec) 
mysql> INSERT INTO books (name) values(Red Hat Linux 6 Server); 
Query OK, 1 row affected (0.00 sec) 

-------------------------------------------------------------------------------- 

现在检查一下新的记录,并熟悉一下select指令。 

-------------------------------------------------------------------------------- 

mysql> SELECT * from books; 
+----+----------------------------------+ 
| id | name | 
+----+----------------------------------+ 
| 1 | PHP for Newbies | 
| 2 | Red Hat Linux 6 Server | 
+----+----------------------------------+ 
2 rows in set (0.00 sec) 

-------------------------------------------------------------------------------- 

这样MySQL服务器的就已经能正常运行了。我们可以继续增加记录,但是在此就没有更多意义了。 

注意:当你向数据库插入记录时,不必指定id。这是因为你创建id 字段有自动增加的选项。 

下面介绍如何进行快速删除。这只是给你一个简单信息,记住你可以在mysql web站点http://www.mysql.com找到所有你所想要的mysql指令和服务器的信息。 

-------------------------------------------------------------------------------- 

mysql> delete from books where id=1; 
Query OK, 1 row affected (0.00 sec) 

mysql> select * from books; 
+----+-----------------------------------+ 
| id | name | 
+----+-----------------------------------+ 
| 2 | Red Hat Linux 6 Server | 
+----+-----------------------------------+ 
1 row in set (0.00 sec) 

-------------------------------------------------------------------------------- 

Ok, 退出MySQL并继续进行下一步安装。在完成所有安装并且一切工作正常后,你就可以运行MySQL了

gunguymadman007 回复于:2003-09-24 20:36:36安装时建议你为MySQL管理创建一个用户和组。由该组用户运行mysql服务器并执行管理任务。(也可以以root身份运行服务器,但是不推荐)
第一步创建一个用户来运行服务器。在Solaris和unix下,可以用useradd和groupadd使用工具来完成。取一个名字叫mysql吧。(当然,任何你喜欢的id都可以)所以在做其它事情之前,利用su命令成为root:
$ su  -  root
$ groupadd mysql
$ useradd -g mysql  mysql
选择要安装mysql软件的位置,并将当前目录转换到该目录。一般的,将安装到/usr/local,这是MySQL软件的标准安装位置。现在进去,
$ cd /usr/local
解开软件包:
$ gunzip -c /tmp/mysql -3.23.xx.tar.gz | tar -xf -
因为要安装在Solaris服务器上,所以如果安装的是不同版本的tar,例如GNU的tar,则上面的命令将不会起作用。这是要用下面的命令:
$ gunzip -c /tmp/mysql -3.23.xx.tar.gz | gtar -xf -
现在可以查看一下新目录,看是否存在
$ ls -ld mysql*
total  1
drwxr-xr-x 28 user user 1024 Jul 18 14:29 mysql-3.23.x/
下一步是创建一个符号链接,以便安装能够指向/usr/local/mysql:
$ ln -s mysql-3.23.x mysql
$ ls -ld mysql*
就会出现表示连接成功的行来。按照上帖软件安装好后,还有几项配置任务要完成。运行scripts/mysql_install_db创建MySQL许可表:
$ scripts/mysql_install_db
Preparing  db talbe
Preparing  host table
Preparing  user table
Preparing  func table
Preparing  tables_priv table
Preparing  columns_priv table
Installing  all prepared tables
010726 19:40:05  ./bin/mysqld: Shutdown Complete
设置二进制文件的所有权,从而使之归root所有,并属于前面创建的MySQL
管理员组(这个例子为mysql)
$ chown -R root /usr/local/mysql
$ chgrp  -R mysql /usr/local/mysql
将数据目录的所有权设置为先前创建的MySQL管理用户
$ chown -R mysql /usr/local/mysql/data
所有权设置完成
启动服务器需运行safe_mysqld:
$ bin/safe_mysqld --usr=mysql &
一般要让MySQL在服务器引导时就运行。为此,可以将support-files/mysql.server复制到系统适当的位置就ok了。

gunguymadman007 回复于:2003-11-06 11:05:59没人看,没人理,自己顶

djsone 回复于:2003-11-06 16:52:43--
我下的是mysql-standard-4.0.16-pc-linux-i686.tar.gz,可装到make那一步就出错了……
:? 
--

djsone 回复于:2003-11-06 17:07:52提示以下错误:
make:***No targets specified and no makefile found. Stop
请问我该如何解决呢?

gunguymadman007 回复于:2003-11-07 09:40:37[quote:fa878887b5="djsone"]提示以下错误:
make:***No targets specified and no makefile found. Stop
请问我该如何解决呢?[/quote:fa878887b5]cd mysql-3.22.xx 
进去后输入./configure --prefix=/你需要安装的路径/
然后再make    得到二进制文件
安装  make install   ......

djsone 回复于:2003-11-07 12:30:08我是按如下步骤进行的:
# cp /mnt/win/downloads/mysql-standard-4.0.16-pc-linux-i686.tar.gz  /usr/local/mysql.tar.gz
# groupadd mysql
# useradd -g mysql mysql
# cd /usr/local
# gunzip < mysql.tar.gz | tar xvf -
# ln -s mysql-standard-4.0.16-pc-linux-i686  mysql
# cd mysql
# ./configure --prefix=/mnt/win/mysql

[i:75873dd88e]此时显示了一屏信息[/color:75873dd88e]

# make

然后就出现了上面的错误,难道是我指定的/mnt/win/mysql有问题?
[/i:75873dd88e]

gunguymadman007 回复于:2003-11-08 13:17:40[quote:28fa9b41d1="djsone"]cp /mnt/win/downloads/mysql-standard-4.0.16-pc-linux-i686.tar.gz /usr/local/mysql.tar.gz 
...
gunzip < mysql.tar.gz | tar xvf - 
[/quote:28fa9b41d1]你把tar文件拷到那个文件夹里  (随便建一个就是了,为什么要起个
mysql.tar.gz呢,不理解,你的数据库要服务什么就起什么名字,我的为了一个ensembl平台, 那我就起ensembl作为文件夹名称了)
然后你解压缩,你解的是包含...pc-linux-i686.tar.gz的文件夹啊   
而不是mysql-standard-4.0.16-pc-linux-i686.tar.gz ,望仔细检查一下 
看看是不是这个问题

gunguymadman007 回复于:2003-11-08 13:19:58[quote:f81ef7204b="djsone"]此时显示了一屏信息 

# make 

然后就出现了上面的错误,难道是我指定的/mnt/win/mysql有问题? 
[/quote:f81ef7204b]你用的是linux系统管理员的身份么  
看看是不是你的权限不够

啊颖 回复于:2003-11-08 16:46:32请教一下.
在错误文件里,提示: /tmp/mysql.sock 权限被否认

并要查看是否有其它程序在使用它,

应该怎么处理?

是怎么样回事?

还有如果mysql.sock册了,要怎么样生成?

djsone 回复于:2003-11-10 09:34:49[quote:b0e2b691a6="gunguymadman007"]惆裻ar文件拷到那个文件夹里  (随便建一个就是了,为什么要起个
mysql.tar.gz呢,不理解,你的数据库要服务什么就起什么名字,我的为了一个ensembl平台, 那我就起ensembl作为文件夹名称了)
然后你解压缩,你解?.........[/quote:b0e2b691a6]

xixi,多谢多谢,我知道是怎么回事了,原来我安装的是二进制版,不需要这么多安装步骤的。

ss0616 回复于:2003-11-10 11:17:16up

telix 回复于:2003-11-11 21:05:58mysql的编译步骤都是这样的啊,我在solaris/freebsd alpha/red hat下编译都是这样,都没有问题的。
在solarsi9下,也不需要专门装gtar来解了。

zhouyifeng 回复于:2003-11-26 14:14:01执行./safe_mysqld &
时出错,怎么解决?

[code:1:99d51d81ef]sh-2.05a# Starting mysqld daemon with databases from /usr/local/mysql/data
031125 14:43:39  mysqld ended

[1]+  Done                    bin/safe_mysqld[/code:1:99d51d81ef]
php爱好者站 http://www.phpfans.net 为phper提供一切资讯.
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载