楼主: oraclelang

MySQL中文參考手冊

[复制链接]
论坛徽章:
4
每日论坛发贴之星
日期:2005-04-26 01:01:12会员2006贡献徽章
日期:2006-04-17 13:46:34ITPUB元老
日期:2008-01-09 22:26:12
141#
 楼主| 发表于 2006-4-29 10:24 | 只看该作者
OLD:                                  NEW:
CC = cc                               CC = gcc -belf
CCCDLFLAGS = -KPIC -W1,-Bexport       CCCDLFLAGS = -fpic
CCDLFLAGS = -wl,-Bexport              CCDLFLAGS =

LD = ld                               LD = gcc -belf -G -fpic
LDDLFLAGS = -G -L/usr/local/lib       LDDLFLAGS = -L/usr/local/lib
LDFLAGS = -belf -L/usr/local/lib      LDFLAGS = -L/usr/local/lib

LD = ld                               LD = gcc -belf -G -fpic
OPTIMISE = -Od                               OPTIMISE = -O1

OLD:
CCCFLAGS = -belf -dy -w0 -U M_XENIX -DPERL_SCO5 -I/usr/local/include

NEW:
CCFLAGS = -U M_XENIX -DPERL_SCO5 -I/usr/local/include

這時如果他們用icc或cc編譯,Perl動態裝載器(dynaloader)將不裝載DBI模塊。

當用cc編譯時,Perl工作得最好。

4.11.14 SCO Unixware 7.0 注意事項
你必須使用一個最新的MySQL版本,至少是3.22.13,因為該版本在Unixware下面解決一些移植性問題。

在UnixWare 7.0.1上,我們可用下列configure的命令編譯MySQL:

使用道具 举报

回复
论坛徽章:
4
每日论坛发贴之星
日期:2005-04-26 01:01:12会员2006贡献徽章
日期:2006-04-17 13:46:34ITPUB元老
日期:2008-01-09 22:26:12
142#
 楼主| 发表于 2006-4-29 10:24 | 只看该作者
shell> CC=cc CXX=CC ./configure --prefix=/usr/local/mysql

4.11.15 IBM-AIX 注意事項
xlC自動檢測從Autoconf丟失,當使用 IBM 編譯器時,需要如下這樣一個configure命令:

shell> CC="xlc_r -ma -O3 -qstrict -DHAVE_INT_8_16_32" \
CXX="xlC_r -ma -O3 -qstrict -DHAVE_INT_8_16_32" \
./configure

如果你正在使用egcs編譯MySQL,你必須使用-fno-exceptions標志,因為egcs得異常處理不是對線程安全的!(這用egcs1.1被測試過)。在 AIX 上使用egcs和gcc,我們推薦下列configure行:

shell> CXX=gcc \
       CXXFLAGS="-felide-constructors -fno-exceptions -fno-rtti" \
       ./configure --prefix=/home/monty --with-debug --with-low-memory

如果你用信號問題(MySQL出人意料地在高負載下死掉),你可能發現了與線程和信號有關的一個OS錯誤。在這種情況下,你可以用如下配置告訴MySQL不使用信號:

shell> CFLAGS=-DDONT_USE_THR_ALARM CXX=gcc \
       CXXFLAGS="-felide-constructors -fno-exceptions -fno-rtti -DDONT_USE_THR_ALARM" \
       ./configure --prefix=/home/monty --with-debug --with-low-memory

這不影響MySQL性能,但是有副作用,就是你不能用mysqladmin kill或mysqladmin shutdown殺死在一個連接上“睡眠”的客戶。相反,當客戶發出下一個命令時,它將死掉。

使用道具 举报

回复
论坛徽章:
4
每日论坛发贴之星
日期:2005-04-26 01:01:12会员2006贡献徽章
日期:2006-04-17 13:46:34ITPUB元老
日期:2008-01-09 22:26:12
143#
 楼主| 发表于 2006-4-29 10:25 | 只看该作者
在 AIX 的一些版本上用libbind.a鏈接使得getservbyname核心傾倒(core dump),這是AIX的一個bug並且應該被報告到IBM了。

4.11.16 HP-UX 注意事項
在 HP-UX 上編譯MySQL時,有一些“小”問題。我們推薦您使用gcc而不是HP-UX自己的編譯器,因為gcc生成更好一些的代碼!

我們推薦在HP-UX上使用gcc 2.95,不使用高度優化標志(類似-O6),因為這在 HP-UX 上可能不安全。

注意MIT-pthreads不能用 HP-UX 編譯器編譯,因為它不能編譯.S(匯編器)文件。

下列配置行應該工作:

CFLAGS="-DHPUX -I/opt/dce/include" CXXFLAGS="-DHPUX \
-I/opt/dce/include -felide-constructors -fno-exceptions \
-fno-rtti" CXX=gcc ./configure --with-pthread \
--with-named-thread-libs='-ldce' --prefix=/usr/local/mysql --disable-shared

如果你正在編譯gcc2.95本身,如果你想要用MIT-pthreads編譯MySQL,你不應該用DCE庫(libdce.a或libcma.a)鏈接它。如果你混合DCE和MIT-pthreads包,你將得到一個使得你不能連接的mysqld。當你編譯gcc2.95時,刪除DCE庫!

4.11.17 MacOS X 注意事項

使用道具 举报

回复
论坛徽章:
4
每日论坛发贴之星
日期:2005-04-26 01:01:12会员2006贡献徽章
日期:2006-04-17 13:46:34ITPUB元老
日期:2008-01-09 22:26:12
144#
 楼主| 发表于 2006-4-29 10:25 | 只看该作者
順著MacOS X移植的鏈接可以得到能讓MySQL載MacOS上工作的信息,見1.8 有用的MySQL相關鏈接。

MySQL3.23.7 應該包括所有必要的MacOSX上配置它的補丁。然而在配置MySQL前,你必須首先安裝來自MacOSX 的MySql服務器的pthread 包。

你可能也想要把一個別名加到你的shell資源文件中以便從命令行訪問mysql和mysqladmin。

alias mysql '/usr/local/mysql/bin/mysql'
alias mysqladmin '/usr/local/mysql/libexec/mysqladmin'

4.12 Win32 注意事項
這節描述在Win32上安裝和使用MySQL,這也在MySQL Win32分發所帶的“readme”文件中描述。

4.12.1 在Win32上安裝MySQL
如果你沒有一個注冊的MySQL版本,你應該首先下載共享軟件版本,從:

MySQL 3.21.29

使用道具 举报

回复
论坛徽章:
4
每日论坛发贴之星
日期:2005-04-26 01:01:12会员2006贡献徽章
日期:2006-04-17 13:46:34ITPUB元老
日期:2008-01-09 22:26:12
145#
 楼主| 发表于 2006-4-29 10:25 | 只看该作者
安裝任何一個分發,在某個空目錄解壓縮它並且咝蠸etup.exe程序。

缺省地,MySQL-Win32被配置安裝在“C:\mysql”。如果你想要在其它地方安裝MySQL,在“C:\mysql”安裝它,然後將安裝移到你想要的地方。如果你真的移走MySQL,你必須通過提供選項給mysqld告訴mysqld那里的所有一切,使用C:\mysql\bin\mysqld --help顯示所有的選項目!例如,如果你移動MySQL分發到“D:\programs\mysql”,你必須用D:\programs\mysql\bin\mysqld --basedir D:\programs\mysql來啟動mysqld。

用登記的MySQL版本,你也可以創建一個“C:\my.cnf”文件來保存用于MySQL服務器的任何缺省選項。拷貝文件“\mysql\my-example.cnf”到“C:\my.cnf”並且編輯它來適用于你的安裝。注意你應該用"/"而不是"\"指定所有的路徑。如果你使用“\”,你需要指定兩次(“\\”),因為在MySQL中“\”是轉義字符,見4.15.4 選項文件。

4.12.2 在Win95/Win98上啟動MySQL
MySQL使用 TCP/IP 把一個客戶連接到一個服務器。(這將允許在你的網絡上任何機器連接你的MySQL服務器)。因此,你必須在啟動MySQL前在你的機器上安裝TCP/IP,你可以在你的Windows CDROM上找到TCP/IP 。

注意:如果你正在使用一個舊的Win95版本(例如OSR2),很有可能你有一個老的Winsock包!MySQL需要Winsock 2!你可從微軟得到最新的Winsock。Win98有新的Winsock 2庫作為缺省,這樣上述不適用于Win98。

你能使用2個不同的MySQL服務器:

mysqld  用完整調試和自動存儲器分配檢查編譯
mysqld-opt  對Pentium 處理器優化。  

上面兩個應該在任何 > = i386的Intel處理器上工作  。

為了啟動mysqld服務器,你應該啟動一個MSDOS窗口並鍵入

使用道具 举报

回复
论坛徽章:
4
每日论坛发贴之星
日期:2005-04-26 01:01:12会员2006贡献徽章
日期:2006-04-17 13:46:34ITPUB元老
日期:2008-01-09 22:26:12
146#
 楼主| 发表于 2006-4-29 10:25 | 只看该作者
上面兩個應該在任何 > = i386的Intel處理器上工作  。

為了啟動mysqld服務器,你應該啟動一個MSDOS窗口並鍵入:

C:\mysql\bin\mysqld
這將在一個沒有窗口的背景啟動mysqld。

你可以這樣殺死MySQL服務器,執行:

C:\mysql\bin\mysqladmin -u root shutdown
注意Win95/Win98不支持命名管道的創建。在Win95/Win98上,你只能使用命名管道連接咝性谝粋

使用道具 举报

回复
论坛徽章:
4
每日论坛发贴之星
日期:2005-04-26 01:01:12会员2006贡献徽章
日期:2006-04-17 13:46:34ITPUB元老
日期:2008-01-09 22:26:12
147#
 楼主| 发表于 2006-4-29 10:26 | 只看该作者
在NT上你可以得到下列服務錯誤消息:

Permission Denied (權限拒絕) 意味著它不能找到mysqld-nt.exe  
Cannot Register (不能登記) 意味著路徑是不正確的

如果你作為一種服務安裝mysqld-nt有問題,嘗試用完整的路徑啟動它:

C:\mysql\bin\mysqld --install
如果這還不工作,你能通過在注冊表修正路徑使得mysqld-nt正確啟動!

如果你不想作為一種服務啟動mysqld-nt,你可以如下啟動它:

C:\mysql\bin\mysqld-nt --standalone


C:\mysql\bin\mysqld-nt --standalone --debug
最新的版本在“C:\mysqld.trace”給你一個調試蹤跡。

4.12.4 在 Win32 上咝

使用道具 举报

回复
论坛徽章:
4
每日论坛发贴之星
日期:2005-04-26 01:01:12会员2006贡献徽章
日期:2006-04-17 13:46:34ITPUB元老
日期:2008-01-09 22:26:12
148#
 楼主| 发表于 2006-4-29 10:26 | 只看该作者
MySQL在所有Win32平台上支持TCP/IP和NT上命名管道。如果客戶安裝了TCP/IP,缺省是對NT上的本地連接使用命名管道而對所有其他情形使用TCP/IP,主機名指定使用哪個協議:

主機名  協議  
空 (沒有) 在NT上,首先嘗試命名管道;如果它不工作,使用TCP/IP。在Win95/Win98上,使用TCP/IP。  
.  命名管道
localhost TCP/IP到當前主機  
主機名 TCP/IP  

通過指定命名管道--pipe選項,你可以強制一個MySQL客戶使用命名管道。使用--socket選項指定管道的名字。

通過執行下列命令,你能測試MySQL是否正在工作:

C:\mysql\bin\mysqlshow
C:\mysql\bin\mysqlshow -u root mysql
C:\mysql\bin\mysqladmin version status proc
C:\mysql\bin\mysql test

如果在Win95/Win98上mysqld很慢地回答連接,可能你的DNS有問題。在這種情況中下,用--skip-name-resolve啟動mysqld並且在MySQL授權表中僅使用localhost和IP數字。在你連接咝性贜T上一個mysqld-nt的MySQL服務器時,使用--pipe指定命名管道使用的參數,你也能避開DNS,對大多數MySQL客戶是可行的。

有2個版本的MySQL命令行工具:

使用道具 举报

回复
论坛徽章:
4
每日论坛发贴之星
日期:2005-04-26 01:01:12会员2006贡献徽章
日期:2006-04-17 13:46:34ITPUB元老
日期:2008-01-09 22:26:12
149#
 楼主| 发表于 2006-4-29 10:26 | 只看该作者
mysql  用原生Win32編譯,它提供很有有限的文本編輯能力。  
mysqlc  用Cygnus GNU 編譯器和庫編譯,它提供readline編輯。  

如果你想使用mysqlc.exe,你必須拷貝“C:\mysql\lib\cygwinb19.dll”到“\windows\system”(或類似的地方)。

在Win32上缺省的權限給所有本地用戶以所有數據庫的完全權限。為了使MySQL更安全,你應該為每個用戶設置口令並刪除mysql.user中有Host='localhost'和User=''的行。

你也應該為root用戶增加一個口令:(下列例子通過刪除匿名用戶,允許任何人存取“測試”數據庫)

C:\mysql\bin\mysql mysql
mysql> DELETE FROM user WHERE Host='localhost' AND User='';
mysql> QUIT
C:\mysql\bin\mysqladmin reload
C:\mysql\bin\mysqladmin -u root password your_password

在你設置了口令以後,如果你想要關掉mysqld服務器, 你能使用這個命令做到:

mysqladmin -- user=root -- password=your_password  shutdown
如果你正在使用在windows下的MySQL共享軟件版本,上面的命令將以 parse error near 'SET OPTION password'的錯誤而失敗,這是因為,這是共享軟件版本,它基于MySQL 3.21,沒有SET PASSWORD命令。

對共享軟件版本,你能如下設置root用戶口令:

C:\mysql\bin\mysql mysql
mysql> UPDATE user SET password=PASSWORD('your password') WHERE user='root';
mysql> QUIT
C:\mysql\bin\mysqladmin reload

有注冊的MySQL版本,你能很容易地用GRANT和REVOKE命令增加新用戶和更改權限,見7.26 GRANT和REVOKE句法。對Windows 的共享軟件版本,必須使用INSERT、UPDATE和DELETE在mysql數據庫中的一個表來管理用戶和他們的權限,見6.13 存取拒絕(Access denied)的錯誤原因。

4.12.5 用SSH從Win32連接一個遠程MySQL

使用道具 举报

回复
论坛徽章:
4
每日论坛发贴之星
日期:2005-04-26 01:01:12会员2006贡献徽章
日期:2006-04-17 13:46:34ITPUB元老
日期:2008-01-09 22:26:12
150#
 楼主| 发表于 2006-4-29 10:26 | 只看该作者
在你的windows機器上安裝SSH客戶 - 我使用了一個來自http://www.doc.ic.ac.uk/~ci2/ssh ... windows/index.html.
啟動SSH。設置主機名字 = 你的MySql服務器名或IP地址,設置userid=你的用戶名登錄到你的服務器。
點擊“local forwords”。設定local port: 3306, host: localhost, remote port: 3306
保存一切,否則下次你將必須再做一遍。
用SSH登錄到你的服務器。
啟動一些ODBC應用程序(例如Access)。
創造一個新文件並且用ODBC驅動程序鏈接到mySQL,就像你通常做的一樣,除了對服務器用用戶“localhost”。
搞定。它對一個直接的因特網連接工作得很好。我有些問題,SSH與我的Win95網絡和Wingate有衝突 - 但是那將是張貼在其他軟件公司的用戶組的話題!

4.12.6 MySQL-Win32與Unix MySQL比較
MySQL- Win32現在已經証明了自己很穩定。這個版本得MySQL有與對應的Unix版本同樣的特征,除了下面:

Win95和線程
Win95 為每個線程的創建損失大約200個字節的內存。因此,如果你進行許多連接,你不應該在Win95咝衜ysqld很長時間,因為MySQL的每個連接都創建一個新線程!WinNT和Win98不能容忍這個bug。
阻塞式讀(blocking read)
MySQL為每個連接使用一個阻塞式讀取,這意味著:
一個連接將不在8個小時後自動被斷開,就像MySQL的Unix版本所發生的。
如果一個連接“挂起”,不殺死MySQL就不可能打破它。
mysqladmin kill在一個睡眠的連接上將不工作。
只要有睡眠的連接,mysqladmin shutdown不能中途中斷。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表