日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql数据库连接过多的错误,可能的原因分析及解决办法

發(fā)布時間:2025/7/14 数据库 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql数据库连接过多的错误,可能的原因分析及解决办法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
mysql數(shù)據(jù)庫連接過多的錯誤,可能的原因分析及解決辦法
來源:網(wǎng)絡(luò)采集 作者:未知?

   系統(tǒng)不能連接數(shù)據(jù)庫,關(guān)鍵要看兩個數(shù)據(jù):
  1、數(shù)據(jù)庫系統(tǒng)允許的最大可連接數(shù)max_connections。這個參數(shù)是可以設(shè)置的。如果不設(shè)置,默認是100。最大是16384。
  2、數(shù)據(jù)庫當前的連接線程數(shù)threads_connected。這是動態(tài)變化的。查看max_connections、 max_connections的辦法見后。 如果 threads_connected == max_connections 時,數(shù)據(jù)庫系統(tǒng)就不能提供更多的連接數(shù)了,這時,如果程序還想新建連接線程,數(shù)據(jù)庫系統(tǒng)就會拒絕,如果程序沒做太多的錯誤處理,就會出現(xiàn)類似強壇的報錯信息。因為創(chuàng)建和銷毀數(shù)據(jù)庫的連接,都會消耗系統(tǒng)的資源。而且為了避免在同一時間同時打開過多的連接線程,現(xiàn)在編程一般都使用所謂數(shù)據(jù)庫連接池技術(shù)。但數(shù)據(jù)庫連接池技術(shù),并不能避免程序錯誤導致連接資源消耗殆盡。這種情況通常發(fā)生在程序未能及時釋放數(shù)據(jù)庫連接資源或其他原因造成數(shù)據(jù)庫連接資源不能釋放,但強壇系統(tǒng)估計不會發(fā)生這種低級的編程錯誤。該錯誤的簡便的檢查辦法是,在刷新強壇頁面時,不斷監(jiān)視threads_connected的變化。如果max_connections足夠大,而 threads_connected值不斷增加以至達到max_connections,那么,就應(yīng)該檢查程序了。當然,如果采用數(shù)據(jù)庫連接池技術(shù), threads_connected增長到數(shù)據(jù)庫連接池的最大連接線程數(shù)時,就不再增長了。從強壇出錯的情況看,更大的可能性是數(shù)據(jù)庫系統(tǒng)沒能進行適當?shù)嘏渲谩O旅嫣岢鲆稽c建議。供參考讓你們的工程師把MySQL的最大允許連接數(shù)從默認的100調(diào)成32000。這就不會老出現(xiàn)連接過多的問題了。查看max_connections 進入MySQL,用命令:show variables 查看數(shù)據(jù)庫最大可連接數(shù)的變量值:max_connections 查看threads_connected 進入MySQL,用命令:show status 查看當前活動的連接線程變量值:threads_connected 設(shè)置max_connections 設(shè)置辦法是在my.cnf文件中,添加下面的最后紅色的一行: --------------------------------------------------------------------------------
[mysqld]
port=3306
#socket=MySQL skip-locking
set-variable = key_buffer=16K
set-variable = max_allowed_packet=1M
set-variable = thread_stack=64K
set-variable = table_cache=4
set-variable = sort_buffer=64K set-variable = net_buffer_length=2K
set-variable = max_connections=32000
-------------------------------------------------------------------------------- 修改完畢后,重啟MySQL即可。當然,為了確保設(shè)置正確,應(yīng)該查看一下max_connections。 注意: 1、雖然這里寫的32000。但實際MySQL服務(wù)器允許的最大連接數(shù)16384; 2、除max_connections外,上述其他配置應(yīng)該根據(jù)你們系統(tǒng)自身需要進行配置,不必拘泥; 3、添加了最大允許連接數(shù),對系統(tǒng)消耗增加不大。 4、如果你的mysql用的是my.ini作配置文件,設(shè)置類似,但設(shè)置的格式要稍作變通。








常見問題集錦

 MySQL總是崩潰

  首先你應(yīng)該試著找出問題mysqld守護進程是否死掉或你的問題是否與你的客戶有關(guān)。你可以用mysqladmin version檢查你的mysqld服務(wù)器正常執(zhí)行了多長時間,如果mysqld死了,你可以在文件“mysql-data- directory/'hostname'.err”中找到其原因。


  使用MySQL時的一些常見錯誤

  MySQL server has gone away

  常見的原因是服務(wù)器超時了并且關(guān)閉了連接。缺省地,如果沒有事情發(fā)生,服務(wù)器在 8個小時后關(guān)閉連接。你可在啟動mysqld時通過設(shè)置wait_timeout變量改變時間限制。

  如果mysqld得到一個太大或不正常的包,它認為客戶出錯了并關(guān)閉連接。


  Can't connect to [local] MySQL server

  通常意味著沒有一個MySQL服務(wù)器運行在系統(tǒng)上或當試圖連接mysqld服務(wù)器時,你正在使用一個錯誤的套接字文件或TCP/IP端口。

  檢查(使用ps)服務(wù)器上是否有一個名為mysqld的進程啟動

  如果一個mysqld進程正在運行,可以通過嘗試這些不同的連接來檢查服務(wù)器

shell> mysqladmin version

shell> mysqladmin variables

shell> mysqladmin -h `hostname` version variables

shell> mysqladmin -h `hostname` --port=3306 version

shell> mysqladmin -h 'ip for your host' version

shell> mysqladmin --socket=/tmp/mysql.sock version

  注意hostname命令使用反引號“`”而非正引號“'”;這些導致hostname輸出(即,當前主機名)被代替進mysqladmin命令中。


  Host '...' is blocked錯誤

Host 'hostname' is blocked because of many connection errors.

Unblock with 'mysqladmin flush-hosts'

  這意味著,mysqld已經(jīng)得到了大量(max_connect_errors)的主機'hostname'的在中途被中斷了的連接請求。在 max_connect_errors次失敗請求后,mysqld認定出錯了(象來字一個***的***),并且阻止該站點進一步的連接,直到某人執(zhí)行命令 mysqladmin flush-hosts。

缺省地,mysqld在10個連接錯誤后阻塞一臺主機。你可以通過象這樣啟動服務(wù)器很容易地調(diào)整它:

shell> safe_mysqld -O max_connect_errors=10000 &


  [color=Red]鏈接過多,請聯(lián)系空間商[/color]錯誤

意味著已經(jīng)有max_connections個客戶連接了mysqld服務(wù)器。

如果你需要比缺省(100)更多的連接,那么你應(yīng)該重啟mysqld,用更大的 max_connections 變量值。


  Out of memory錯誤

mysql: Out of memory at line 42, 'malloc.c'

mysql: needed 8136 byte (8k), memory in use: 12481367 bytes (12189k)

ERROR 2008: MySQL client ran out of memory

  注意,錯誤指向了MySQL客戶mysql。這個錯誤的原因很簡單,客戶沒有足夠的內(nèi)存存儲全部結(jié)果。

  首先檢查你的查詢是否正確

 Packet too large錯誤

  一個MySQL客戶或mysqld服務(wù)器得到一個比max_allowed_packet個字節(jié)長的包

  可以通過用mysql --set-variable=max_allowed_packet=8M指定一個更大的緩沖區(qū)來啟動客戶程序。


  The table is full錯誤

  這個錯誤發(fā)生在內(nèi)存臨時表變得比tmp_table_size字節(jié)大時。


  Commands out of sync in client錯誤

  正在以錯誤的次序調(diào)用客戶函數(shù)!


  Ignoring user錯誤

Found wrong password for user: 'some_user@some_host'; Ignoring user

  這意味著在mysqld啟動時或在它再次裝載權(quán)限表時,它在user表中找到了一個有一個無效口令的條目。結(jié)果,條目簡單地被權(quán)限系統(tǒng)忽略。


  Table 'xxx' doesn't exist錯誤

  數(shù)據(jù)庫和表名件是區(qū)分大小寫的!可以用SHOW TABLES檢查你在當前數(shù)據(jù)庫中有哪個表。

?

  從一個文本文件運行SQL命令

  可以把SQL命令放在一個文件中并且告訴mysql從該文件讀取其輸入:創(chuàng)造一個文本文件“text_file”,它包含要執(zhí)行的命令。然后如下調(diào)用mysql:

shell> mysql database < text_file

  或

shell> mysql < text_file

  啟動有USE db_name語句的文本文件。

?

  怎樣重新設(shè)置一個忘記的口令

  如果忘記了MySQL的root用戶的口令,可以使用如下方法恢復:

  通過發(fā)送一個kill(不是kill -9)到mysqld服務(wù)器來關(guān)閉mysqld服務(wù)器。pid 被保存在一個.pid文件中,通常在MySQL數(shù)據(jù)庫目錄中:

  kill `cat /mysql-data-directory/hostname.pid`

  你必須是一個UNIX root用戶或運行服務(wù)器的相同用戶做這個。

  使用--skip-grant-tables選項重啟mysqld。

  用mysql -h hostname mysql連接mysqld服務(wù)器并且用一條GRANT命令改變口令。見7.26 GRANT和REVOKE句法。也可以用mysqladmin -h hostname -u user password 'new password' 進行。

  用mysqladmin -h hostname flush-privileges或用SQL命令FLUSH PRIVILEGES來裝載權(quán)限表。

?

  使用DATE列的問題

  DATE值的格式是'YYYY-MM-DD'。

?

  改變一張表中列的順序

  在一個應(yīng)用程序中,應(yīng)該決不基于他們的位置使用SELECT * 檢索列,因為被返回的列的順序永遠不能保證;對數(shù)據(jù)庫的一個簡單改變可能導致應(yīng)用程序相當有戲劇性地失敗。

  可以使用如下方法改變:

  以正確的列順序創(chuàng)建一張新表。

  執(zhí)行INSERT INTO new_table SELECT fields-in-new_table-order FROM old_table.

  刪除或改名old_table。

  ALTER TABLE new_table RENAME old_table。

?

  數(shù)據(jù)庫復制

  MySQL(至今)沒有數(shù)據(jù)庫復制,但是有一些如何實現(xiàn)的信息。

  復制一個數(shù)據(jù)庫最一般的方法是使用更新日志。










?MySQL 許可常見問題(MySQL Licensing FAQ)
[url]http://www.chinaunix.net[/url] 作者:yejr? 發(fā)表于:2006-11-15 09:52:02
【發(fā)表評論】【查看原文】【MySQL討論區(qū)】【關(guān)閉】

譯文出自: [url]http://imysql.cn/?q=node/150[/url], 譯者:葉金榮, 轉(zhuǎn)載請注明.

原文摘錄自: [url=http://dev.mysql.com/tech-resources/articles/mysql- network-and-you.html]http://dev.mysql.com/tech-resources/articles/mysql-network -and-you.html,作者: Arjen Lentz(Community Relations Manager of MySQL AB)

End users

終端用戶

If you are an end-user, you can use a GPL licensed server and will not require a commercial license to use MySQL. This applies even if you are an ISP or if you sell services on your e-commerce web site, since you are not distributing anything. If you are distributing anything, please see under the Developer heading below.

如果你是一個終端用戶,則你可以使用GPL服務(wù)器而無需使用商業(yè)許可的MySQL.不管你是ISP還是電子商務(wù)銷售服務(wù)網(wǎng)站,都適用這個原則,因為你沒有分發(fā)(分發(fā)給其他人)任何東西.如果你分發(fā)了,那么看看下面的開發(fā)者的前面那部分.

If you want to take advantage of MySQL Network for your servers, you can get a yearly subscription. In case your organization is apprehensive about GPL licensed software, you can then ask for a commercial (non-GPL) license as an optional (but free) extra.

如果你想讓MySQL Network提供更多高級服務(wù)的話,就可以每年訂閱MySQL Network的服務(wù).如果你(所在的組織)對GPL許可下的軟件不放心的話,就可以索要一個商業(yè)許可(非GPL)作為額外的選擇(但免費).

If you later decide that you no longer want to subscribe to MySQL Network, you can continue to use GPL licensed servers.

如果你將來決定不再訂閱MySQL Network的服務(wù),則可以繼續(xù)使用GPL許可下的服務(wù)器.

Developers (including ISVs/OEMs)

開發(fā)者(包括分公司(ISV)和代工(OEM))

If you build an application, and link it with MySQL code, check out these possibilities:

如果你開發(fā)了一個應(yīng)用軟件,并且和MySQL的代碼連接,則看看下面的幾個可能性:

?? 1.? Are you only using your application in-house?
????? →You are actually an end-user. See above.

?? 1.? 你是否只是在內(nèi)部使用這個軟件?
????? →? 那么你實際上是終端用戶,看上面.

?? 2.? Are you distributing your application as Open Source under the GPL (free or for money, doesn't matter)?
????? →You may link with any GPL licensed MySQL code: client library or embedded server. The end-users of your software can, at their option, subscribe to MySQL Network.

?? 2.? 你是否把你的應(yīng)用軟件在GPL許可下作為開源(是否免費無所謂)分發(fā)了?
????? →? 你可能和GPL許可下的MySQL代碼連接了: 客戶端庫或者嵌入的服務(wù)器. 則應(yīng)用軟件的終端客戶可以自行選擇是否要訂閱MySQL Network服務(wù).

?? 3.? Are you distributing your application and only linking with the MySQL client libraries, not under GPL but with another Open Source license we allow? (see the FLOSS License Exception)
????? →Same as the previous point 2.

?? 3.? 你是否在非GPL許可但遵循其他開源許可([url=http: //www.mysql.com/company/legal/licensing/foss-exception.html]查看FLOSS例外許可) 下分發(fā)了你的應(yīng)用軟件,并且只是和MySQL客戶端庫連接?
????? →? 看看上面的第2點.

?? 4.? Are you distributing your application but it is not Open Source, and you want to link with the MySQL server?
?? Contact MySQL AB to discuss an OEM agreement for commercial licenses. Embedding the MySQL server with your application can be an excellent idea, as it makes things very easy and cost-effective for your customers. And of course there are volume discounts.

?? 4.? 你以非開源的方式分發(fā)了應(yīng)用軟件,并且你想要連接到MySQL服務(wù)器上?
????? →? 聯(lián)系MySQL AB討論一下用OEM協(xié)議作為商業(yè)許可.把MySQL服務(wù)器嵌入到你的應(yīng)用軟件中也許是一個絕妙的主意,因為這么做讓你的客戶非常方便并且效率很高.當然了,他們可以享受很多優(yōu)惠.

?? 5. Are you certifying your application, whether it's open source or not, for use with MySQL Network?
?? You can sign up to be a MySQL Network Certified Partner. This program helps you certify your software as compatible with MySQL Network and is quite effective when you will have your customers buy MySQL Network. There is a cost associated with this program, but the basic level is very affordable and it also gives you MySQL Network for yourself, which includes access to the knowledge base and the advisors.
As partner, you get listed on our partner web site, and your application will have a strategic advantage over competitors as it is certified for MySQL Network. There are some additional rules that govern the partner program.

?? 5. 你認證了應(yīng)用軟件,不管是開源也好還是用MySQL Network服務(wù)?
????? →? [url=http://solutions.mysql.com/program/tech-partners.html] 你可以注冊成為MySQL Network的認證合作伙伴.這有助于你在需要客戶購買MySQL Network產(chǎn)品時,保證你的程序和 MySQL Network的產(chǎn)品兼容性更好而且效率更高.同時這是有相關(guān)價值的,但都是從MySQL Network能獲得的基礎(chǔ)的知識,包括訪問知識庫和建議.作為合作伙伴,在我們的合作伙伴列表網(wǎng)站列表上能看得到,并且由于有了MySQL Network認證可以提高你的戰(zhàn)略競爭優(yōu)勢.還
有一些其他附加的規(guī)則來管理合作伙伴.

????????? Your customers may want to subscribe to MySQL Network, for which your software will be tested and certified, but you don't have to worry about individual licensing or anything like that. So this is the really big new thing for developers of closed-source software
who want to support MySQL.

????????? 你的客戶可能想要訂閱MySQL Network,則你的軟件會被測試和認證,但不必擔心諸如個別許可的事情.這對那些想要支持MySQL的封閉源碼開發(fā)者來說是件大好事.

Of course, you can always sign up as a MySQL Network Certified Partner even if your situation is not as described above. You would get the benefits of MySQL Network as well as the partnership extras, for a decent price.

當然,就算你的情況沒有在上述情況中,你也可以只注冊作為MySQL Network的認證合作伙伴.你可以作為額外的合作伙伴從MySQL Network中獲得利益,比如較低的價格.

I won't go into the definitions of "linking" or "distribution" here. We follow what the GNU General Public License text and the FSF (Free Software Foundation, the people who wrote the GPL license) say about this (Frequently Asked Questions about the GNU GPL). Lawyers also have (varying!) opinions on this. If you are uncertain but don't want to pay a lawyer, please contact MySQL.

在這里我不想進一步定義"連接"或"分發(fā)".我們遵守GNU通用公共許可以及FSF(自由軟件基金會的奠基者,他寫的GPl許可)所闡述的(GNU GPL FAQ部分).我們的律師在也已經(jīng)確定這點了.如果你還不確定,又不愿意請律師,請聯(lián)系MySQL.



KimSeong Loh wrote:
> The article listed some possibilities for Developers.
>
> Case 4: Does "link with the MySQL server" means using MySQL server in embedded mode only or
> does it include using the client libraries to connect to a MySQL database server through TCP/IP or
> other protocol?
> For example: a java application using Connector/J or an application using ODBC.

>那篇文章列出了適用于開發(fā)者的一些可能性.
>情況4: "和MySQL服務(wù)器連接"是否指只是嵌入式的MySQL服務(wù)器或者是否包括使用客戶端庫通過TCP/IP或其他協(xié)議連接到MySQL數(shù)據(jù)庫服務(wù)器嗎?
>例如,一個使用Connector/J連接的java應(yīng)用軟件,或者使用ODBC的應(yīng)用軟件.

It is about linking with MySQL code.
It definitely applies to libmysqld (the embedded server), as the server is GPL.
It also applies to the libmysqlclient (the client library), in case the application is not open source; the client lib is GPL, but
has the licensing exception to allow other open source licensed apps to link with it too.

這主要是關(guān)于和MySQL源代碼的連接.
它顯然適用于 libmysqld(嵌入的服務(wù)器),因為服務(wù)器是GPL的.
如果應(yīng)用軟件不是開源的話,它也適用于 libmysqlclient(客戶端庫);如果客戶端庫是GPL的,但是有例外的許可允許其他開源的許可下的應(yīng)用軟件也可以連接它.

> Case 5: Certifying the application for use with MySQL Network.
> Does it mean distributing a certified application (non-GPL) do not need a commercial license to use
> the MySQL client library or drivers such as Connector/J or MyODBC?

>情況5: 讓應(yīng)用軟件通過MySQL Network的認證.
>是否意味著如果分發(fā)應(yīng)用軟件(非GPL)時,就無需購買一個商業(yè)許可才能使用MySQL客戶端庫或者類似 Connector/J 及 MyODBC 那樣的驅(qū)動?

Certified apps have nothing to do with commercial licenses as such.
It is about certifying that the app works with the certified server. This allows the app vendor to specify a known suitable
environment for the application, and provide support based on that.

讓應(yīng)用軟件通過MySQL Network認證跟是否需要商業(yè)許可沒有任何關(guān)系.
這是關(guān)于讓你的認證應(yīng)用軟件和認證服務(wù)器一起工作.它允許應(yīng)用軟件銷售商為軟件指定一個更合適的環(huán)境,并且基于此提供支持.

> What about cases where the developers create custom applications (non open source) for each
> customers?
> In the case of distributing a php application (non open source) which connects to a MySQL database
> through php mysql api, does this falls under case 3, case 4 or case 5? Definitely not case 1 and 2.

>如果是開發(fā)者為不同的客戶定制應(yīng)用軟件(非開源),這種情況該怎么辦?
>如果把一個通過php mysql api連接到MySQL數(shù)據(jù)庫的php應(yīng)用軟件分發(fā)了(非開源),那么是對應(yīng)哪一種情況呢?第3,第4,還是第5種?顯然不會是第1,2種.

Again, it primarily comes down to what requirements an application builder has.
It makes sense to be a MySQL partner for MySQL Network, so you have those resources available, the exposure on the MySQL web site, and providing the known tested environment to users.

再說一次,這主要回歸到應(yīng)用軟件創(chuàng)建者的要求.
這主要是對MySQL Network的合作伙伴才有意義,所以你才有這些可用資源,MySQL網(wǎng)站上那些公開的資源,以及為用戶提供已知的測試環(huán)境.

We could debate the (sometimes murky) legal bottom line, but that's not it's really about.
MySQL Network for end users, and network/oem partnerships for developers, offers an environment that provides real value for
all those involved. It's also very affordable.
Inside any of these offers, licensing effectively becomes a non-issue. So why waste time on it?

我們來討論一下合法的底線(有時候是晦澀,不明確的),不過這不是真正相關(guān)的問題.
MySQL Network為終端用戶,并且網(wǎng)絡(luò)/OEM合作伙伴為開發(fā)者,提供了一個包括真正價值的環(huán)境.
基于以上各種因素,許可證的有效性已經(jīng)不是問題了,為什么還要浪費時間呢?

注:由于本人的水平有限及對MySQL License理解存在一定局限,翻譯可能有誤,敬請指出,謝謝!








安裝,啟動與卸載Mysql系統(tǒng)服務(wù)(MYSQL常見問題)
作者:love感冒 日期:2006-05-11
字體大小: 小 中 大
將Mysql添加到Windows系統(tǒng)服務(wù)中:
1.、 安裝服務(wù)。
在Windows2000下,安裝完成后,并沒有把MySQL安裝成服務(wù),我們必須執(zhí)行下面的語句把MySQL注冊為服務(wù):installdir\mysql\bin\mysqld-nt –-install。
Windows98下沒有服務(wù)的概念,所以不用安裝服務(wù)。
2.、 啟動服務(wù)
在Windows2000下,安裝服務(wù)后可以啟動MySQL服務(wù):net start mysql。
在Windows98下,可以用下面的命令啟動服務(wù):c:\mysql\bin\mysqld,服務(wù)啟動后在后臺運行,并沒有界面。
3.、 停止服務(wù)
在Windows2000下,可以通過下面的命令停止MySQL服務(wù):net stop mysql。
在Windows98下,可以通過下面命令停止服務(wù):C:\> C:\mysql\bin\mysqladmin -u root shutdown
4、 卸載服務(wù)
可以通過下面的命令卸載MySQL服務(wù):installdir\mysql\bin\mysqld-nt –-remove。
??? 經(jīng)過上面的安裝就可以使用了,可以把我們系統(tǒng)空的數(shù)據(jù)庫內(nèi)建到mySQL數(shù)據(jù)目錄即可,缺省數(shù)據(jù)庫目錄在installdir\mysql\data。
??? 訪問MySQL數(shù)據(jù)庫可以通過dbExpress組件,dbExpress組件是一組高效的數(shù)據(jù)庫訪問組件,只要改變連接串,我們就可以直接把數(shù)據(jù)源連接到MSSQLServer等數(shù)據(jù)庫。

安裝與卸載windows系統(tǒng)服務(wù)有專門軟件,如果需要,mail to me:wangyihust@163.com

?

刪除了原來的mysql4.1系統(tǒng)服務(wù)后,下載了一個5.0的non-install版本,將其添加到windows系統(tǒng)服務(wù)后,為什么無法啟動?-1056錯誤

1.報錯:Can't find messagefile 'F:\Program Files\mysql\share\english\errmsg.sys'


原因:原來的4.1版本安裝在F:\Program Files\mysql目錄;而現(xiàn)在的5.0版本在F:\database目錄

解決方法:在c:\winnt\目錄下找到my.ini文件,修改或刪除之

2.報錯:ready for connections.
Version: '5.0.21-community-nt'? socket: ''? port: 3306? MySQL Community Edition (GPL)

原因:socket為空,沒有配置mysql;或者端口已經(jīng)占用

解決方法: \mysql\bin目錄下運行MySQLInstanceConfig.exe配置mysql實例



如何更改Win2000服務(wù)MySQL屬性中的可執(zhí)行文件路徑!

開始時在D盤裝了MySQL,后來卸載后,格式化D盤,再次安裝,路徑與原路徑不同,不能通過“net start mysql”啟動。查看win2000服務(wù)中MYsql的屬性,可執(zhí)行文件路徑在位于D盤。現(xiàn)在怎么樣更改,或者從服務(wù)項去掉Mysql?

注冊表里HKEY_LOCAL_MECHINE---SYSTEM ---CurrentControlSet里


啟動MYSQL服務(wù)時出錯的幾種解決方法

1
安裝MYSQL后更改了ROOT的密碼后用
net startmysql
啟動時我就遇到了這樣的問題.使用以下命令后
c:\mysql\bin\mysqladmin-u root -p shutdown
再net start mysql就沒有這個錯誤提示了!


*************
2
MySQL的1067錯誤
Q:我的Mysql碰到了 1067 錯誤

錯誤信息為:
A system error has occurred.
System error 1067 has occurred.
The process terminated unexpectedly.

A:在我的機上的解決辦法是:
修改%windir%\my.ini,增加
[mysqld]
#設(shè)置basedir指向mysql的安裝路徑
basedir=D:\Program\Tools\mysql
datadir=D:\Program\Tools\mysql\data


*************
3
已經(jīng)弄好了!!!
好像是這樣……
mysql_install_db腳本只是在初次安裝時才需要運行一次,之后就不用再運行了,不知道是
不是這么回事.我把mysql.server拷貝至/etc/rc.d/init.d/中,運行chkconfig mysql.ser
ver,至此mysql服務(wù)器每次開機自動啟動,只要設(shè)置好PATH,在命令行上輸入mysql就一切搞
定!
看來摸索的過程實在是痛苦啊,這已經(jīng)折磨我好幾天了……

*************
4
問:我的Mysql碰到了 1067 錯誤

錯誤信息為:

A system error has occurred.
System error 1067 has occurred.
The process terminated unexpectedly.

答:
解決辦法:

1.檢查你的Mysql目錄有沒有給系統(tǒng)的System用戶權(quán)限。
2.刪除掉你的 %WINDOWS%/my.ini 文件。
3.檢查你的 c:/my.cnf 文件配置是否正確。


*************
5
【☆☆☆ MySql概要說明 ☆☆☆】
MySql的默認安裝目錄是c:mysql,安裝結(jié)束后沒有任何提示信息說安裝結(jié)束,請點Finish
按鈕之類的話,直接就退出了。如果需要安裝到其他目錄,建議先安裝到c:mysql,然后再
整個目錄move到自己希望的地方,例如移動到d:mysql 之后,需要編輯 d:mysqlmy-examp
le.cnf (*.cnf的文件在Windows 2000中會被注冊成為 SpeedDial文件,在資源管理器中
無法操作,要用命令行來啟動notepad編輯,例如運行notepadd:mysqlmy-example.cnf ,
但是這個文件是UNIX系統(tǒng)下的文本文件格式,在notepad中不能正確換行,可以用write打
開編輯,
或者用write打開后保存一次,再用notepad就可以編輯了。)找到basedir一行,去掉前面
的“#”號注釋,將后面的路徑改為移動后的目錄(目錄分隔符要用斜線而不是反斜線),
然后另存為:c:my.cnf
用服務(wù)方式啟動的MySql如果用 net stop mysql 來停止,會得到一條 出錯消息,例如:
?
    C:>net stop mysql
    MySql 服務(wù)正在停止.
    系統(tǒng)出錯。
    系統(tǒng)發(fā)生 1067 錯誤。
    進程意外終止。
    MySql 服務(wù)已成功停止。
這沒有關(guān)系,MySql確實已經(jīng)停止了。但是假如不希望看到任何出錯消息
的話,可以用以下的命令來停止:
    C:>mysqlbinmysqladmin -u root shutdown
如果沒有任何提示信息,說明MySql已經(jīng)成功停止了。
需要說明的是MySql雖然號稱安裝簡單,易于使用,但是這畢竟是基于SQL的數(shù)據(jù)庫管理系
統(tǒng),所以如果不是對SQL十分精通的話恐怕也不能拿它來做什么

**************
6
mysql服務(wù)無法啟動的解決方法
mysql服務(wù)無法啟動

我的操作系統(tǒng)是 win xp
無論安裝何版本的mysql,在管理工具的服務(wù)中啟動mysql服務(wù)時都會在中途報錯
內(nèi)容為:在 本地計算機 無法啟動mysql服務(wù) 錯誤1067:進程意外中止

經(jīng)過多方求教,得解決方法如下

查找系統(tǒng)(后來驗證應(yīng)該為windows目錄)目錄下的my.ini文件,編輯內(nèi)容(如果沒有該文件
,則新建一個),至少包含basedir,datadir這兩個基本的配置。
[mysqld]
# set basedir to installation path, e.g., c:/mysql
# 設(shè)置為MYSQL的安裝目錄
basedir=D:/www/WebServer/MySQL
# set datadir to location of data directory,
# e.g., c:/mysql/data or d:/mydata/data
# 設(shè)置為MYSQL的數(shù)據(jù)目錄
datadir=D:/www/WebServer/MySQL/data

另外,要主意
[WinMySQLadmin]
Server=D:/www/WebServer/MySQL/bin/mysqld-nt.exe
user=root
password=xxxxxxxx
#以上是設(shè)置WinMySQLadmin的配置
[Client]
user=root
password=xxxxxxxx

hehe~? 解決了

**************
7
剛剛弄好Mysql 『關(guān)鍵字 1067錯誤』
比較郁悶,竟然沒有想到安裝個Mysql也會出錯,錯誤代碼是1067? 安裝卸載了好幾次,就
是不行,而且把一些禁用了的服務(wù)都打開了,但是還是不行。最后我是這樣解決的:

在C:\windows里找一找my.ini 然后刪除 然后再啟動winmysqladmin.exe界面配置mysql,
保存my.ini就可以了 啟動mysql試試? 呵呵

?

***************
8
mysql 錯誤 1067: 進程意外終止
這個問題困擾了一個早晨,非常郁悶!以前我在裝mysql的時候從來沒有遇到過,可是現(xiàn)在
莊這個高版本的就有問題了,我換我裝過的低版本的還是一樣的問題(最關(guān)鍵的是操作系
統(tǒng)都是一樣的)。在windows2000的服務(wù)里面啟動mysql服務(wù)可是總是彈出“錯誤 1067: 進
程意外終止”!

我感覺問題在配置文件,于是就重新寫了my.ini,啟動還是一樣的效果,我在google上查
找無果,崩潰狀態(tài)!就在此時眼前一亮,一位高人的指點是我豁然開朗,你的ini文件有否
放到windows目錄下,我從個人目錄的windows目錄下,將其拷貝到系統(tǒng)windows目錄下,啟
動服務(wù),ok!!!

我實在是不滿足,為什么有不同呢,我的另外一臺機子上裝的是4.0.18的版本,它的my.i
ni就是放在用戶目錄下的windows目錄下的,而且也運行正常,我現(xiàn)在有點迷惘,人往往在
解決了問題以后很少去思考,所以我現(xiàn)在有點想放棄的感覺,如果現(xiàn)在不會得到答案我想
這個在去思考解決基本上是不可能了:)




1005:創(chuàng)建表失敗
1006:創(chuàng)建數(shù)據(jù)庫失敗
1007:數(shù)據(jù)庫已存在,創(chuàng)建數(shù)據(jù)庫失敗
1008:數(shù)據(jù)庫不存在,刪除數(shù)據(jù)庫失敗
1009:不能刪除數(shù)據(jù)庫文件導致刪除數(shù)據(jù)庫失敗
1010:不能刪除數(shù)據(jù)目錄導致刪除數(shù)據(jù)庫失敗
1011:刪除數(shù)據(jù)庫文件失敗
1012:不能讀取系統(tǒng)表中的記錄
1020:記錄已被其他用戶修改
1021:硬盤剩余空間不足,請加大硬盤可用空間
1022:關(guān)鍵字重復,更改記錄失敗
1023:關(guān)閉時發(fā)生錯誤
1024:讀文件錯誤
1025:更改名字時發(fā)生錯誤
1026:寫文件錯誤
1032:記錄不存在
1036:數(shù)據(jù)表是只讀的,不能對它進行修改
1037:系統(tǒng)內(nèi)存不足,請重啟數(shù)據(jù)庫或重啟服務(wù)器
1038:用于排序的內(nèi)存不足,請增大排序緩沖區(qū)
1040:已到達數(shù)據(jù)庫的最大連接數(shù),請加大數(shù)據(jù)庫可用連接數(shù)
1041:系統(tǒng)內(nèi)存不足
1042:無效的主機名
1043:無效連接
1044:當前用戶沒有訪問數(shù)據(jù)庫的權(quán)限
1045:不能連接數(shù)據(jù)庫,用戶名或密碼錯誤
1048:字段不能為空
1049:數(shù)據(jù)庫不存在
1050:數(shù)據(jù)表已存在
1051:數(shù)據(jù)表不存在
1054:字段不存在
1065:無效的SQL語句,SQL語句為空
1081:不能建立Socket連接
1114:數(shù)據(jù)表已滿,不能容納任何記錄
1116:打開的數(shù)據(jù)表太多
1129:數(shù)據(jù)庫出現(xiàn)異常,請重啟數(shù)據(jù)庫
1130:連接數(shù)據(jù)庫失敗,沒有連接數(shù)據(jù)庫的權(quán)限
1133:數(shù)據(jù)庫用戶不存在
1141:當前用戶無權(quán)訪問數(shù)據(jù)庫
1142:當前用戶無權(quán)訪問數(shù)據(jù)表
1143:當前用戶無權(quán)訪問數(shù)據(jù)表中的字段
1146:數(shù)據(jù)表不存在
1147:未定義用戶對數(shù)據(jù)表的訪問權(quán)限
1149:SQL語句語法錯誤
1158:網(wǎng)絡(luò)錯誤,出現(xiàn)讀錯誤,請檢查網(wǎng)絡(luò)連接狀況
1159:網(wǎng)絡(luò)錯誤,讀超時,請檢查網(wǎng)絡(luò)連接狀況
1160:網(wǎng)絡(luò)錯誤,出現(xiàn)寫錯誤,請檢查網(wǎng)絡(luò)連接狀況
1161:網(wǎng)絡(luò)錯誤,寫超時,請檢查網(wǎng)絡(luò)連接狀況
1062:字段值重復,入庫失敗
1169:字段值重復,更新記錄失敗
1177:打開數(shù)據(jù)表失敗
1180:提交事務(wù)失敗
1181:回滾事務(wù)失敗
1203:當前用戶和數(shù)據(jù)庫建立的連接已到達數(shù)據(jù)庫的最大連接數(shù),請增大可用的數(shù)據(jù)庫連接數(shù)或重啟數(shù)據(jù)庫
1205:加鎖超時
1211:當前用戶沒有創(chuàng)建用戶的權(quán)限
1216:外鍵約束檢查失敗,更新子表記錄失敗
1217:外鍵約束檢查失敗,刪除或修改主表記錄失敗
1226:當前用戶使用的資源已超過所允許的資源,請重啟數(shù)據(jù)庫或重啟服務(wù)器
1227:權(quán)限不足,您無權(quán)進行此操作
1235:MySQL版本過低,不具有本功能。


MySQL性能設(shè)置
公司網(wǎng)站訪問量越來越大,MySQL自然成為瓶頸,因此最近我一直在研究 MySQL 的優(yōu)化,第一步自然想到的是 MySQL 系統(tǒng)參數(shù)的優(yōu)化,作為一個訪問量很大的網(wǎng)站(日20萬人次以上)的數(shù)據(jù)庫系統(tǒng),不可能指望 MySQL 默認的系統(tǒng)參數(shù)能夠讓 MySQL運行得非常順暢。

? 通過在網(wǎng)絡(luò)上查找資料和自己的嘗試,我認為以下系統(tǒng)參數(shù)是比較關(guān)鍵的:

(1)、back_log:
? 要求 MySQL 能有的連接數(shù)量。當主要MySQL線程在一個很短時間內(nèi)得到非常多的連接請求,這就起作用,然后主線程花些時間(盡管很短)檢查連接并且啟動一個新線程。
? back_log值指出在MySQL暫時停止回答新請求之前的短時間內(nèi)多少個請求可以被存在堆棧中。只有如果期望在一個短時間內(nèi)有很多連接,你需要增加它,換句話說,這值對到來的TCP/IP連接的偵聽隊列的大小。你的操作系統(tǒng)在這個隊列大小上有它自己的限制。試圖設(shè)定back_log高于你的操作系統(tǒng)的限制將是無效的。
? 當你觀察你的主機進程列表,發(fā)現(xiàn)大量 264084 | unauthenticated user | xxx.xxx.xxx.xxx | NULL | Connect | NULL | login | NULL 的待連接進程時,就要加大 back_log 的值了。默認數(shù)值是50,我把它改為500。

(2)、interactive_timeout:
? 服務(wù)器在關(guān)閉它前在一個交互連接上等待行動的秒數(shù)。一個交互的客戶被定義為對 mysql_real_connect()使用 CLIENT_INTERACTIVE 選項的客戶。 默認數(shù)值是28800,我把它改為7200。

(3)、key_buffer_size:
? 索引塊是緩沖的并且被所有的線程共享。key_buffer_size是用于索引塊的緩沖區(qū)大小,增加它可得到更好處理的索引(對所有讀和多重寫),到你能負擔得起那樣多。如果你使它太大,系統(tǒng)將開始換頁并且真的變慢了。默認數(shù)值是8388600(8M),我的MySQL主機有2GB內(nèi)存,所以我把它改為 402649088(400MB)。

(4)、max_connections:
? 允許的同時客戶的數(shù)量。增加該值增加 mysqld 要求的文件描述符的數(shù)量。這個數(shù)字應(yīng)該增加,否則,你將經(jīng)常看到 [color=Red]鏈接過多,請聯(lián)系空間商[/color] 錯誤。 默認數(shù)值是100,我把它改為1024 。

(5)、record_buffer:
? 每個進行一個順序掃描的線程為其掃描的每張表分配這個大小的一個緩沖區(qū)。如果你做很多順序掃描,你可能想要增加該值。默認數(shù)值是131072(128K),我把它改為16773120 (16M)

(6)、sort_buffer:
? 每個需要進行排序的線程分配該大小的一個緩沖區(qū)。增加這值加速ORDER BY或GROUP BY操作。默認數(shù)值是2097144(2M),我把它改為 16777208 (16M)。

(7)、table_cache:
? 為所有線程打開表的數(shù)量。增加該值能增加mysqld要求的文件描述符的數(shù)量。MySQL對每個唯一打開的表需要2個文件描述符。默認數(shù)值是64,我把它改為512。

(8)、thread_cache_size:
? 可以復用的保存在中的線程的數(shù)量。如果有,新的線程從緩存中取得,當斷開連接的時候如果有空間,客戶的線置在緩存中。如果有很多新的線程,為了提高性能可以這個變量值。通過比較 Connections 和 Threads_created 狀態(tài)的變量,可以看到這個變量的作用。我把它設(shè)置為 80。

(10)、wait_timeout:
? 服務(wù)器在關(guān)閉它之前在一個連接上等待行動的秒數(shù)。 默認數(shù)值是28800,我把它改為7200。

注:參數(shù)的調(diào)整可以通過修改 /etc/my.cnf 文件并重啟 MySQL 實現(xiàn)。這是一個比較謹慎的工作,上面的結(jié)果也僅僅是我的一些看法,你可以根據(jù)你自己主機的硬件情況(特別是內(nèi)存大小)進一步修改。


從sql導出到mysql的方法很多,現(xiàn)介紹一種無需編程,直接利用sql和mysql里的圖形界面進行導入導出的簡單方法。
  
   前提是已經(jīng)安裝了sqlserver客戶端和mysql的圖形界面管理工具phpmyadmin。
  
   在控制臺根目錄下打開sqlserver企業(yè)管理器,新建sqlserver組,根據(jù)自己的情況進行選擇;然后新建sqlserver 注冊,進行對sqlserver的連接。準備妥當后,下面就開始了:
  
   首先打開數(shù)據(jù)轉(zhuǎn)換服務(wù),新建包,打開DTS界面,在連接中選擇數(shù)據(jù)源進行配置。再選擇將要轉(zhuǎn)換到的目的文件,這里我選的 Textfile(destination),選擇好文件的存放位置之后,我們來新建一個任務(wù)。這里我們只選擇轉(zhuǎn)換數(shù)據(jù)任務(wù),將帶有“選擇源連接”“選擇目的連接”的鼠標分別選中數(shù)據(jù)源和目的之后,我們對新生成的連接進行定義,在其屬性中將源,目的,轉(zhuǎn)換依次定義。
  
   執(zhí)行任務(wù),提示成功。保存任務(wù)。然后在新建的任務(wù)上導出數(shù)據(jù),有向?qū)崾?#xff0c;其中一項選擇“從源數(shù)據(jù)庫復制表和視圖”。

   這一步已經(jīng)把數(shù)據(jù)導出到目的文件中。
  
  下一步在mysql中新建表,與將要導入的結(jié)構(gòu)保持一致時,直接選取“從文本文件中提取數(shù)據(jù),插入到數(shù)據(jù)表:”,將選項添好后,“發(fā)送”就可以了,瀏覽一下,數(shù)據(jù)已導入了。若要導入的表已經(jīng)存在,且屬性名也不同,這時就先建一個與要導入的數(shù)據(jù)相同結(jié)構(gòu)的表并導入數(shù)據(jù)(按剛才的進行就可以了),然后在 mysql中導出“數(shù)據(jù)和結(jié)構(gòu)”,得到sql語句,將其在文本文件中編輯,利用文本編輯器的替換功能,將表名修改,列名加入,最后將其粘貼在要導入表的執(zhí)行sql語句的地方,執(zhí)行一下,數(shù)據(jù)便導入了。
  
   若過程中出現(xiàn)錯誤,請仔細檢查配置的選項,確保正確。

轉(zhuǎn)載于:https://blog.51cto.com/phpanddb123/78914

總結(jié)

以上是生活随笔為你收集整理的mysql数据库连接过多的错误,可能的原因分析及解决办法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。