﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-SeasonLee-文章分类-Linux编程</title><link>http://www.cppblog.com/SeasonLee/category/10060.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 08 Apr 2009 11:19:09 GMT</lastBuildDate><pubDate>Wed, 08 Apr 2009 11:19:09 GMT</pubDate><ttl>60</ttl><item><title>Linux下用C语言API连接MySQL数据库</title><link>http://www.cppblog.com/SeasonLee/articles/79115.html</link><dc:creator>季节</dc:creator><author>季节</author><pubDate>Mon, 06 Apr 2009 12:44:00 GMT</pubDate><guid>http://www.cppblog.com/SeasonLee/articles/79115.html</guid><wfw:comment>http://www.cppblog.com/SeasonLee/comments/79115.html</wfw:comment><comments>http://www.cppblog.com/SeasonLee/articles/79115.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/SeasonLee/comments/commentRss/79115.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/SeasonLee/services/trackbacks/79115.html</trackback:ping><description><![CDATA[<br>
C代码的API是随MySQL一起发布的. 它包含在mysqlclient库中, 可以使C程序来访问数据库.<br>
<br>
MySQL源码包中的许多客户端都是用C写的.  如果你正在找使用这些C API的例子, 可以看看客户端的写法.你可以在MySQL源码包的clients目录找到这些例子.<br>
<br>
软件包<br>
请确保你已经安装了必要的开发环境,比如gcc, mysql等等. 下面是编译一个程序所需要安装的软件包的列表: <br>
<span style="color: red;">mysql-server.rpm</span><br style="color: red;"><span style="color: red;">
mysql-client.rpm</span><br style="color: red;"><span style="color: red;">mysql-devel-xxx.rpm
</span><br style="color: red;"><span style="color: red;">
libmysqlclient15-dev和libmysqlclient15off </span><br><br>
<br>
<br>
gcc, make and other development libs<br>
例子<br>
下面这个例子,连接本机的MySQL服务器,然后列出mysql数据库中所有的表:<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #008000;">/*</span><span style="color: #008000;">&nbsp;Simple&nbsp;C&nbsp;program&nbsp;that&nbsp;connects&nbsp;to&nbsp;MySQL&nbsp;Database&nbsp;server</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #000000;">#include<br></span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #000000;">#include<br></span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #000000;">main()&nbsp;{<br></span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #000000;">MYSQL&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">conn;<br></span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;">MYSQL_RES&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">res;<br></span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #000000;">MYSQL_ROW&nbsp;row;<br></span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">10</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">server&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">localhost</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br></span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">user&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">root</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br></span><span style="color: #008080;">12</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">password&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">""</span><span style="color: #000000;">;&nbsp;</span><span style="color: #008000;">/*</span><span style="color: #008000;">&nbsp;此处改成你的密码&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br></span><span style="color: #008080;">13</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">database&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">mysql</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br></span><span style="color: #008080;">14</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">15</span>&nbsp;<span style="color: #000000;">conn&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;mysql_init(NULL);<br></span><span style="color: #008080;">16</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">17</span>&nbsp;<span style="color: #000000;"></span><span style="color: #008000;">/*</span><span style="color: #008000;">&nbsp;Connect&nbsp;to&nbsp;database&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br></span><span style="color: #008080;">18</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(</span><span style="color: #000000;">!</span><span style="color: #000000;">mysql_real_connect(conn,&nbsp;server,<br></span><span style="color: #008080;">19</span>&nbsp;<span style="color: #000000;">user,&nbsp;password,&nbsp;database,&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">,&nbsp;NULL,&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">))&nbsp;{<br></span><span style="color: #008080;">20</span>&nbsp;<span style="color: #000000;">fprintf(stderr,&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">%s\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;mysql_error(conn));<br></span><span style="color: #008080;">21</span>&nbsp;<span style="color: #000000;">exit(</span><span style="color: #000000;">1</span><span style="color: #000000;">);<br></span><span style="color: #008080;">22</span>&nbsp;<span style="color: #000000;">}<br></span><span style="color: #008080;">23</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">24</span>&nbsp;<span style="color: #000000;"></span><span style="color: #008000;">/*</span><span style="color: #008000;">&nbsp;send&nbsp;SQL&nbsp;query&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br></span><span style="color: #008080;">25</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(mysql_query(conn,&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">show&nbsp;tables</span><span style="color: #000000;">"</span><span style="color: #000000;">))&nbsp;{<br></span><span style="color: #008080;">26</span>&nbsp;<span style="color: #000000;">fprintf(stderr,&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">%s\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;mysql_error(conn));<br></span><span style="color: #008080;">27</span>&nbsp;<span style="color: #000000;">exit(</span><span style="color: #000000;">1</span><span style="color: #000000;">);<br></span><span style="color: #008080;">28</span>&nbsp;<span style="color: #000000;">}<br></span><span style="color: #008080;">29</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">30</span>&nbsp;<span style="color: #000000;">res&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;mysql_use_result(conn);<br></span><span style="color: #008080;">31</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">32</span>&nbsp;<span style="color: #000000;"></span><span style="color: #008000;">/*</span><span style="color: #008000;">&nbsp;output&nbsp;table&nbsp;name&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br></span><span style="color: #008080;">33</span>&nbsp;<span style="color: #000000;">printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">MySQL&nbsp;Tables&nbsp;in&nbsp;mysql&nbsp;database:\n</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br></span><span style="color: #008080;">34</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">while</span><span style="color: #000000;">&nbsp;((row&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;mysql_fetch_row(res))&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;NULL)<br></span><span style="color: #008080;">35</span>&nbsp;<span style="color: #000000;">printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%s&nbsp;\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;row[</span><span style="color: #000000;">0</span><span style="color: #000000;">]);<br></span><span style="color: #008080;">36</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">37</span>&nbsp;<span style="color: #000000;"></span><span style="color: #008000;">/*</span><span style="color: #008000;">&nbsp;close&nbsp;connection&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br></span><span style="color: #008080;">38</span>&nbsp;<span style="color: #000000;">mysql_free_result(res);<br></span><span style="color: #008080;">39</span>&nbsp;<span style="color: #000000;">mysql_close(conn);<br></span><span style="color: #008080;">40</span>&nbsp;<span style="color: #000000;">}</span></div>
<br><br><br><br><br>编译和连接程序<br><span style="color: red;"><span style="color: #2000ff;">常见错误：----------undefined reference to mysql_free_result-------</span><br>(如果是使用C++连接mysql的话除了连接mysqlclient.a库之外，还应该加入Data Compression标准库，否则无法通过编译<br>添加方法很简单，可以在后面添加-lmysqlclient或者在项目属性-链接器-库-添加库文件)</span><br>
MySQL中有一个特殊的脚本,叫做mysql_config. 它会为你编译MySQL客户端,并连接到MySQL服务器提供有用的信息.你需要使用下面两个选项.<br>
1. --libs 选项 - 连接MySQL客户端函数库所需要的库和选项. <br>
<br>
$ mysql_config --libs<br>
输出:<br>
<br>
-L/usr/lib64/mysql -lmysqlclient -lz -lcrypt -lnsl -lm -L/usr/lib64 -lssl -lcrypto<br>
2. --cflags 选项 - 使用必要的include文件的选项等等.<br>
$ mysql_config --cflags<br>
输出:<br>
<br>
-I/usr/include/mysql -g -pipe -m64 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fno-strict-aliasing<br>
你需要将上面两个选项加入到对源文件的编译命令中. 所以,要编译上面的程序,要使用下面的命令:<br>
$ gcc -o output-file $(mysql_config --cflags) mysql-c-api.c $(mysql_config --libs)<br>
<br>
执行编译后的程序:<br>
$ ./output.file
<br> <img src ="http://www.cppblog.com/SeasonLee/aggbug/79115.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/SeasonLee/" target="_blank">季节</a> 2009-04-06 20:44 <a href="http://www.cppblog.com/SeasonLee/articles/79115.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于Linux上配置MySQL的全过程</title><link>http://www.cppblog.com/SeasonLee/articles/79114.html</link><dc:creator>季节</dc:creator><author>季节</author><pubDate>Mon, 06 Apr 2009 12:36:00 GMT</pubDate><guid>http://www.cppblog.com/SeasonLee/articles/79114.html</guid><wfw:comment>http://www.cppblog.com/SeasonLee/comments/79114.html</wfw:comment><comments>http://www.cppblog.com/SeasonLee/articles/79114.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/SeasonLee/comments/commentRss/79114.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/SeasonLee/services/trackbacks/79114.html</trackback:ping><description><![CDATA[卸载mysql<br>
<br>
<span style="color: red;">1、查找以前是否装有mysql</span><br>
<br>
命令：rpm -qa|grep -i mysql<br>
<br>
可以看到mysql的两个包：<br>
<br>
mysql-4.1.12-3.RHEL4.1<br>
<br>
mysqlclient10-3.23.58-4.RHEL4.1<br>
<br>
<span style="color: red;">2、删除mysql</span><br>
<br>
删除命令：rpm -e --nodeps 包名 <br>
<br>
( rpm -ev  mysql-4.1.12-3.RHEL4.1 )<br>
<br>
<span style="color: red;">3、删除老版本mysql的开发头文件和库</span><br>
<br>
命令：rm -fr /usr/lib/mysql <br>
<br>
rm -fr /usr/include/mysql <br>
<br>
注意：卸载后/var/lib/mysql中的数据及/etc/my.cnf不会删除，如果确定没用后就手工删除<br>
<br>
rm -f  /etc/my.cnf<br>
<br>
rm -fr  /var/lib/mysql<br>
<br>
<br>
<span style="color: red;">安装mysql</span><br style="color: red;">
<br style="color: red;"><span style="color: red;">
安装前准备：两个rpm包</span><br>
<br style="color: #177c94;">
<span style="color: #177c94;">MySQL-client-5.1.20-0.glibc23.i386.rpm</span><br style="color: #177c94;">
<br style="color: #177c94;"><span style="color: #177c94;">
MySQL-server-5.1.20-0.glibc23.i386.rpm</span><br><br><span style="color: #ff0000;">通常使用C调用MySQL的话还需要安装</span><br style="color: #ff0000;"><span style="color: #ff0000;">MySQL-devel-xxx.rpm（安装方法跟以上2个rpm一样）</span><br>
<br style="color: #ff0000;"><span style="color: #ff0000;">
1、安装服务端：</span><br>
<br>
命令：rpm -ivh MySQL-server-5.1.20-0.glibc23.i386.rpm<br>
<br>
安装成功会出现....<br>
<br>
warning: MySQL-server-5.1.20-0.glibc23.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5<br>
<br>
Preparing...                ########################################### [100%]<br>
<br>
1:MySQL-server           ########################################### [100%]<br>
<br>
080220 13:58:27 [Note] Plugin 'InnoDB' disabled by command line option<br>
<br>
080220 13:58:28 [Note] Plugin 'InnoDB' disabled by command line option<br>
<br>
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !<br>
<br>
To do so, start the server, then issue the following commands:<br>
<br>
/usr/bin/mysqladmin -u root password 'new-password'<br>
<br>
/usr/bin/mysqladmin -u root -h localhost.localdomain password 'new-password'<br>
<br>
See the manual for more instructions.<br>
<br>
Please report any problems with the /usr/bin/mysqlbug script!<br>
<br>
The latest information about MySQL is available on the web at<br>
<br>
<a href="http://www.mysql.com/" target="_blank">http://www.mysql.com</a><br>
<br>
Support MySQL by buying support/licenses at <a href="http://shop.mysql.com/" target="_blank">http://shop.mysql.com</a><br>
<br>
Starting MySQL.[  OK  ]<br><br><br><span style="color: #0010ff;">P.S:我有一次安装到最后出现:Starting MySQL........[失败]</span><br style="color: #0010ff;"><span style="color: #0010ff;">找了很久终于找到解决方法</span><br style="color: #ff0000;"><br style="color: #ff0000;">
<span style="color: #ff0000;">mysql_install_db</span><br style="color: #ff0000;"><br style="color: #ff0000;"><span style="color: #ff0000;">mysqld_safe</span><br style="color: #ff0000;"><br style="color: #ff0000;"><span style="color: #ff0000;">service mysqld start</span><br style="color: #ff0000;"><br style="color: #ff0000;"><span style="color: #ff0000;">mysql 成功</span><br style="color: #ff0000;"><br style="color: #ff0000;"><span style="color: #0010ff;">mysql表应该被初始化了。要重新设置用户信息了</span><br><br>&nbsp;<br style="color: #ff0000;"><span style="color: #ff0000;">
2、安装客户端</span><br>
<br>
命令：rpm -ivh MySQL-client-5.1.20-0.glibc23.i386.rpm <br>
<br>
成功表现：<br>
<br>
[root@localhost ~]# rpm -ivh MySQL-client-5.1.20-0.glibc23.i386.rpm <br>
<br>
warning: MySQL-client-5.1.20-0.glibc23.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5<br>
<br>
Preparing...                ########################################### [100%]<br>
<br>
1:MySQL-client           ########################################### [100%]<br>
<br>
3、登陆mysql<br>
<br>
登陆MySql的命令是mysql，mysql 的使用语法如下：<br>
<br>
mysql [-u username] [-h host] [-p[password]] [dbname]<br>
<br>
username 与 password 分别是 MySQL 的用户名与密码，mysql的初始管理帐号是root，没有密码，注意：这个root用户不是Linux的系统用户。MySQL默认用户是root，由于初始没有密码，第一次进时只需键入mysql即可<br>
<br>
[root@localhost ~]# mysql<br>
<br>
Welcome to the MySQL monitor.  Commands end with ; or \g.<br>
<br>
Your MySQL connection id is 2<br>
<br>
Server version: 5.1.20-beta MySQL Community Server (GPL)<br>
<br>
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.<br>
<br>
mysql&gt;<br>
<br>
出现了&#8220;mysql&gt;&#8221;提示符，恭喜你，安装成功！ <br>
<br>
增加了密码后的登录格式如下： <br>
<br>
mysql -u root -p <br>
<br>
Enter password: (输入密码) <br>
<br>
其中-u后跟的是用户名，-p要求输入密码，回车后在输入密码处输入密码。 <br>
<br>
注意：这个mysql文件在/usr/bin目录下，与后面讲的启动文件/etc/init.d/mysql不是一个文件。 <br><br><span style="color: #ff0000;">mysql的初始管理帐号是root,没有密码的</span><br style="color: #ff0000;"><span style="color: #ff0000;">如果想要把默认帐号root的密码修改成：123456</span><br style="color: #ff0000;"><span style="color: #ff0000;">则执行:mysqladmin -u root -p password 123456</span><br>
<br>
补： <br>
<br>
通过rpm包安装、配置及卸载mysql的详细过程.<br>
<br>
以MySQL-server-4.0.14-0.i386.rpm为例，放在/data目录下<br>
<br>
cd /data<br>
<br>
<span style="color: #ff0000;">rpm -ivh MySQL-server-4.0.14-0.i386.rpm</span><br>
<br>
安装完成后在/usr/share/mysql目录中会有一个mysql的启动脚本mysql.server及示例配置文件等(如my-huge.cnf、my-large.cnf、my-medium.cnf)<br>
<br>
拷贝一个示例配置文件作为mysql的配置文件：<br>
<br>
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf<br>
<br>
rpm包安装完后自动将mysql安装成系统服务，所以可以使用下面命令启动、停止mysql<br>
<br>
启动mysql<br>
<br>
/etc/init.d/mysql start 或 service mysql start<br>
<br>
停止mysql<br>
<br>
/etc/init.d/mysql stop 或 service mysql stop<br>
<br>
到此，mysql服务就安装配置完成。<br>
<br>
安装mysql客户端<br>
<br>
rpm -ivh MySQL-client-4.0.14-0.i386.rpm<br>
<br>
mysql安装好后目录结构如下：<br>
<br>
工具程序在/usr/bin目录中－－－ls /usr/bin/mysql*<br>
<br>
服务器程序/usr/sbin/mysqld<br>
<br>
数据目录/var/lib/mysql<br>
<br>
默认情况下mysql将错误日志文件、二进制日志文件及进程文件写在/var/lib/mysql目录中,如localhost.err、localhost.pid、localhost-bin.001等<br>
<br>
要改变这些情况可以修改/etc/my.cnf文件<br>
<br>
如将日志文件写在/var/log目录中，可以在my.cnf文件中加入下面两行：<br>
<br>
[mysqld_safe]<br>
<br>
err-log = /var/log/mysqld.log<br>
<br>
有个实用程序/usr/bin/mysql_install_db，该程序可以用来初始化
mysql数据库，即创建/var/log/mysql目录，及创建mysql数据库(mysql授权表等信息)及test数据库(空库),如果不小心删
除了/var/log/mysql目录可以通过该程序来初始化.<br>
<br>
卸载mysql<br>
<br>
rpm -qa|grep -i mysql<br>
<br>
rpm -ev MySQL-server-4.0.14-0 MySQL-client-4.0.14-0<br>
<br>
卸载后/var/lib/mysql中的数据及/etc/my.cnf不会删除，如果确定没用后就手工删除<br>
<br>
rm -f /etc/my.cnf<br>
<br>
rm -rf /var/lib/mysql  <br>
<br>
<br>
<br>
mysql 1130错误解决方法:<br>
<br>
通过MySQL-Front或mysql administrator连接mysql的时候发生的这个错误<br>
ERROR 1130: Host ***.***.***.*** is not allowed to connect to this MySQL server<br>
说明所连接的用户帐号没有远程连接的权限，只能在本机(localhost)登录。<br>
需更改 mysql 数据库里的 user表里的 host项<br>
把localhost改称%<br>
<br>
具体步骤：登陆到mysql<br>
首先 use mysql；<br>
按照别人提供的方式update的时候，出现错误。<br>
mysql&gt; update user set host='%' where user = 'root';<br>
ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'<br>
然后查看了下数据库的host信息如下：<br>
mysql&gt; select host from user where user = 'root';<br>
+-----------------------+<br>
| host                  |<br>
+-----------------------+<br>
| %                     | <br>
| 127.0.0.1             | <br>
| localhost.localdomain | <br>
+-----------------------+<br>
3 rows in set (0.00 sec)<br>
host已经有了%这个值，所以直接运行命令：<br>
mysql&gt;flush privileges;<br>
再用mysql administrator连接...成功！！！<br>
<br>
<br>
tar.gz版本安装： <br>
<br>
版本1： <br>
<br>
1。把MYSQL安装包放置并解压到/usr/local下<br>
tar zxvf mysql-standard-5.0.27-linux-i686-glibc23.tar.gz<br>
<br>
2。为目录建立符号链接<br>
ln -s mysql-standard-4.0.24-pc-linux-gnu-i686 mysql<br>
<br>
3。建立MYSQL组和用户<br>
groupadd mysql<br>
useradd -g mysql mysql<br>
<br>
4。改变mysql目录的所属用户和组<br>
chown -R mysql .         #注意保证此时的当前目录是/usr/lcoal/mysql<br>
chgrp -R mysql .<br>
<br>
5。以mysql用户执行配置脚本<br>
su mysql                           #切换到mysql用户<br>
cd /usr/local/mysql                #注意切换用户以后，工作目录已经不是/usr/local/mysql。所以得重新进去<br>
./configure                        #执行配置脚本<br>
<br>
6。进入数据库，检查安装是否成功<br>
/usr/local/mysql/bin/mysql<br>
如果出现mysql的提示符且进入，说明安装成功！<br>
<br>
7。在系统启动时自动打开mysql服务<br>
su －                                                 #切换回root用户<br>
cd /usr/local/mysql  <br>
cp support-files/mysql.server /etc/rc.d/init.d/mysql  #把mysql的脚本文件拷到系统的启动目录下<br>
cd /etc/rc.d/init.d/<br>
chmod +x mysql                                        #改为可执行文件属性<br>
chkconfig --add mysql                                 #将mysql加到启动服务列表里<br>
chkconfig mysql on                                    #让系统启动时自动打开mysql服务<br>
重起系统后，执行 /usr/local/mysql/bin/mysql ，如果出现mysql的提示符，说明整个安装成功<br>
<br>
版本2：<br>
<br>
mysql-standard-4.0.24-pc-linux-gnu-i686.tar.gz 是mysql4.0.24版本的安装文件，是一个二进制的压缩包，所以我们的安装方式就为二进制分发安装。 <br>
<br>
安装步骤： <br>
<br>
1．将 mysql-standard-4.0.24-pc-linux-gnu-i686.tar.gz 拷贝到一个目录中 <br>
<br>
2．shell&gt; tar zvxf mysql-standard-4.0.24-pc-linux-gnu-i686.tar.gz <br>
<br>
3．上面的命令将在当前目录下生成一个mysql-standard-4.0.24-pc-linux-gnu-i686文件夹 <br>
<br>
4．shell&gt;mv mysql-standard-4.0.24-pc-linux-gnu-i686 /usr/local/mysql <br>
<br>
5．上面的命令是将mysql-standard-4.0.24-pc-linux-gnu-i686下的所有东东，剪切到/usr/local/mysql 下，进行这一步是为了以后的方便。 <br>
<br>
6．shell&gt; groupadd mysql         增加一个名为mysql的用户组 <br>
<br>
7．shell&gt; useradd -g mysql mysql  在mysql用户组中加一个名为mysql的用户 <br>
<br>
如果上面的两个命令不能执行，那么要切换到root用户下执行 <br>
<br>
shell&gt;su root - <br>
<br>
8．shell&gt; cd /usr/local/mysql <br>
<br>
9．shell&gt; cp support-files/my-medium.cnf /etc/my.cnf  <br>
<br>
这时会问是否覆盖重名文件，回答y <br>
<br>
10.shell&gt; scripts/mysql_install_db --user=mysql <br>
<br>
以mysql用户初始化数据库，必须以mysql用户 <br>
<br>
11.shell&gt; chown -R root<br>
<br>
注意后面有点，表示将当前目录下的所有文件与子目录的拥有者设 <br>
<br>
定为root用户 <br>
<br>
12.shell&gt; chown -R mysql data <br>
<br>
表示将当前目录下的data目录的拥有者设定为mysql用户 <br>
<br>
13.shell&gt; chgrp -R mysql . <br>
<br>
注意后面有点，表示将当前目录下的文件的文件组设为mysql组 <br>
<br>
14.shell&gt; bin/mysqld_safe --user=root &amp;  <br>
<br>
此时如果没有出现&#8220;&#8230;&#8230;ended&#8221;字样，大功告成！ <br>
<br>
15.回车显示shell&gt; <br>
<br>
此时你可以 <br>
通过 shell&gt;netstat &#8211;atln 命令查看3306端口是否已经启用 <br>
也可以 shell&gt;ps -ef | grep mysqld 查看当前系统中的mysqld的进程 <br>
或直接 shell&gt;bin/mysql &#8211;u root  进入mysql客户端，进行mysql操作 <br>
或shell&gt;bin/mysqladmin shutdown 停止mysql服务 <br>
<br>
记住：此时你的root用户是没有密码的，任何身份都可以用root进入，你可以 <br>
<br>
通过shell&gt; bin /mysqladmin -u root password '新口令'来设定root用户的口令，此口令将在进入mysql客户端和停止mysql服务时需要输入 <br>
<br>
提示：在启单个服务的时候，可以通过修改/etc/my.cnf文件来配置 <br>
<br>
可以用VI编辑器打开my.cnf ，怎么打开呢，看下面 <br>
<br>
shell&gt;vi my.cnf 打开my.cnf <br>
<br>
找到下面这段 <br>
[mysqld]  <br>
port = 8888  <br>
socket = /tmp/mysql.sock  <br>
<br>
可以在后面加上相应的配置 <br>
log = /var/log/mysql.log  <br>
<br>
datadir = /free/mysqldbf  <br>
<br>
如 log = /* 改变log的保存位置 <br>
<br>
datadir = /free/mysqldbf 改变data的保存位置<br>
<br>
希望对遇到同样问题的朋友有点点帮助<br>
<br>
常用命令： <br>
<br>
启动 MySQL:<br>
service mysql start<br>
/etc/init.d/mysql start<br>
/usr/share/mysql/mysql.server start<br>
<br>
[mysql.server]<br>
# 注释掉 basedir 行，否则 MySql 可能不能启动<br>
# 据说是 MySql 的 bug<br>
# basedir=/var/lib<br>
<br>
root登录时，自动启动mysql：<br>
在 /root/.bash_profile 文件中增加1行：<br>
/usr/share/mysql/mysql.server start<br>
<br>
查看启动日志：<br>
/var/log/messages<br>
<br>
显示MySQL所有用户:<br>
use mysql;<br>
select host,user,password from user;<br>
<br>
添加 MySQL 用户(user name:user1,password:sql):<br>
grant all on *.* to user1@'%' identified by 'sql' with grant option;<br>
<br>
删除 MySQL 用户：<br>
delete from user where user='user1';<br>
<br>
配置环境变量：<br>
PATH=$JAVA_HOME/bin:$CATALINA_HOME/bin:/usr/local/mysql/bin:$PATH
<br><img src ="http://www.cppblog.com/SeasonLee/aggbug/79114.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/SeasonLee/" target="_blank">季节</a> 2009-04-06 20:36 <a href="http://www.cppblog.com/SeasonLee/articles/79114.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个基于socket的Linux上的网络聊天程序--多线程的服务器程序(转贴)</title><link>http://www.cppblog.com/SeasonLee/articles/78620.html</link><dc:creator>季节</dc:creator><author>季节</author><pubDate>Wed, 01 Apr 2009 15:34:00 GMT</pubDate><guid>http://www.cppblog.com/SeasonLee/articles/78620.html</guid><wfw:comment>http://www.cppblog.com/SeasonLee/comments/78620.html</wfw:comment><comments>http://www.cppblog.com/SeasonLee/articles/78620.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/SeasonLee/comments/commentRss/78620.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/SeasonLee/services/trackbacks/78620.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 原帖地址：http://hi.baidu.com/dlpucat/blog/item/5a4de306e53d857802088196.html编译方式:gcc -pthread -o chat_server chat_server.cCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeH...&nbsp;&nbsp;<a href='http://www.cppblog.com/SeasonLee/articles/78620.html'>阅读全文</a><img src ="http://www.cppblog.com/SeasonLee/aggbug/78620.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/SeasonLee/" target="_blank">季节</a> 2009-04-01 23:34 <a href="http://www.cppblog.com/SeasonLee/articles/78620.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>