2013年9月25日星期三

MySQL的全球社區

Original post: http://anothermysqldba.blogspot.com/2013/09/mysql-global-community.html 
 
我感到鼓舞的響應這個博客太感謝你所有已閱讀它。

由於MySQL是一個全球性的社會。我想我會指出全球利益,我已經通過這個博客跟踪。這絕不可以在MySQL中確定的唯一的興趣,每個區域整體。然而,我覺得它很有趣,看到不同的主題都集中在不同的國家/語言。其實做不同的主題。也許你也可以找到有幫助的東西,也許它可以幫助直接支持非英語的社區。

我不會破壞它按國家,而是按語言,以反映不同的博客

English:






Chinese:




Japanese:





Spanish:




Portuguese:







MySQL的:YUM回購(甲骨文,MariaDB的和Percona的)

Original post: http://anothermysqldba.blogspot.com/2013/09/mysql-yum-repo-oracles-mariadb-and.html

今天,許多人寧願例如從MySQL下載最新的RPM安裝相關軟件時,堅持用yum包管理器。

雖然可以從供應商處下載RPMS使用yum安裝(yum安裝*。轉)你也可以更新您的yum軟件庫直接拉向賣方MySQL的包。 在這篇文章的時候,你只會得到你即使到MySQL 5.5.13的MySQL 5.6 GA發布2013年2月5日通過Oracle回購。 MariaDB的MariaDB的公佈,33年5月5日,我希望甲骨文將獲得移動和更新他們的公共回購。

無論你選擇什麼。 下面是如何建立供應商的回購協議,這樣你就可以訪問你想什麼。

所有實例是容易遵循,並設立網頁,我已經列出。 我會先走,並把例子。

這些例子中,我將使用CentOS 6的64位。

在所有的情況下,您將yum.repos.d目錄為根。
CD的/ etc / yum.repos.d


http://public-yum.oracle.com
wget的https://public-yum.oracle.com/public-yum-ol6.repo的
#VI公共yum的ol6.repo
找到以下和編輯啟用從0到1,然後保存文件。




[ol6_MySQL]
名稱=的Oracle Linux 6中的MySQL($ basearch)
BASEURL = http://public-yum.oracle.com/repo/OracleLinux/OL6/MySQL/ $ basearch /
gpgkey =文件:/ /的/ etc / PKI / RPM-GPG / RPM-GPG-KEY-ORACLE
gpgcheck = 1
啟用= 1

yum list | grep MySQL
mysql.x86_64 5.5.34-1.el6 ol6_MySQL
mysql-devel.x86_64 5.5.34-1.el6 ol6_MySQL
mysql-embedded.x86_64 5.5.34-1.el6 ol6_MySQL
mysql-embedded-devel.x86_64 5.5.34-1.el6 ol6_MySQL
mysql-libs.x86_64 5.5.34-1.el6 ol6_MySQL
mysql-libs-compat.x86_64 5.5.34-1.el6 ol6_MySQL
mysql-server.x86_64 5.5.34-1.el6 ol6_MySQL
mysql-test.x86_64 5.5.34-1.el6 ol6_MySQL


https://downloads.mariadb.org/mariadb/repositories/
vi MariaDB.repo的






MariaDB的為您提供的選擇來接5.5或10,我用5.5這個例子。


# MariaDB 5.5 CentOS repository list - created 2013-09-24 21:59 UTC
# http://mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/5.5/centos6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1



MariaDB-Galera-server.x86_64 5.5.32-1 mariadb
MariaDB-client.x86_64 5.5.33a-1 mariadb
MariaDB-common.x86_64 5.5.33a-1 mariadb
MariaDB-compat.x86_64 5.5.33a-1 mariadb
MariaDB-devel.x86_64 5.5.33a-1 mariadb
MariaDB-server.x86_64 5.5.33a-1 mariadb
MariaDB-shared.x86_64 5.5.33a-1 mariadb
MariaDB-test.x86_64 5.5.33a-1 mariadb
galera.x86_64 23.2.6-1.rhel6 mariadb



http://www.percona.com/doc/percona-server/5.5/installation/yum_repo.html
vi Percona.repo的

[percona]
name = CentOS $releasever - Percona
baseurl=http://repo.percona.com/centos/$releasever/os/$basearch/
enabled = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-percona
gpgcheck = 1


percona-toolkit.noarch 2.2.4-1 @/percona-toolkit-2.2.4-1.noarch
percona-xtrabackup.x86_64 2.1.3-608.rhel6 @/percona-xtrabackup-2.1.3-608.rhel6.x86_64
Percona-SQL-50-debuginfo.x86_64 5.0.92-b23.89.rhel6 percona
Percona-SQL-client-50.x86_64 5.0.92-b23.89.rhel6 percona
Percona-SQL-devel-50.x86_64 5.0.92-b23.89.rhel6 percona
Percona-SQL-server-50.x86_64 5.0.92-b23.89.rhel6 percona
Percona-SQL-shared-50.x86_64 5.0.92-b23.89.rhel6 percona
Percona-SQL-shared-compat.x86_64 5.0.92-b23.89.rhel6 percona
Percona-SQL-test-50.x86_64 5.0.92-b23.89.rhel6 percona
Percona-Server-51-debuginfo.x86_64 5.1.71-rel14.9.589.rhel6 percona
Percona-Server-55-debuginfo.x86_64 5.5.33-rel31.1.566.rhel6 percona
Percona-Server-56-debuginfo.x86_64 5.6.13-rc60.6.427.rhel6 percona
Percona-Server-client-51.x86_64 5.1.71-rel14.9.589.rhel6 percona
Percona-Server-client-55.x86_64 5.5.33-rel31.1.566.rhel6 percona
Percona-Server-client-56.x86_64 5.6.13-rc60.6.427.rhel6 percona
Percona-Server-devel-51.x86_64 5.1.71-rel14.9.589.rhel6 percona
Percona-Server-devel-55.x86_64 5.5.33-rel31.1.566.rhel6 percona
Percona-Server-devel-56.x86_64 5.6.13-rc60.6.427.rhel6 percona
Percona-Server-server-51.x86_64 5.1.71-rel14.9.589.rhel6 percona
Percona-Server-server-55.x86_64 5.5.33-rel31.1.566.rhel6 percona
Percona-Server-server-56.x86_64 5.6.13-rc60.6.427.rhel6 percona
Percona-Server-shared-51.x86_64 5.1.71-rel14.9.589.rhel6 percona
Percona-Server-shared-55.x86_64 5.5.33-rel31.1.566.rhel6 percona
Percona-Server-shared-56.x86_64 5.6.13-rc60.6.427.rhel6 percona
Percona-Server-shared-compat.x86_64 5.5.33-rel31.1.566.rhel6 percona
Percona-Server-shared-compat-51.x86_64 5.1.71-rel14.9.589.rhel6 percona
Percona-Server-test-51.x86_64 5.1.71-rel14.9.589.rhel6 percona
Percona-Server-test-55.x86_64 5.5.33-rel31.1.566.rhel6 percona
Percona-Server-test-56.x86_64 5.6.13-rc60.6.427.rhel6 percona
Percona-XtraDB-Cluster-client.x86_64 1:5.5.33-23.7.6.495.rhel6 percona
Percona-XtraDB-Cluster-debuginfo.x86_64 1:5.5.33-23.7.6.495.rhel6 percona
Percona-XtraDB-Cluster-devel.x86_64 1:5.5.33-23.7.6.495.rhel6 percona
Percona-XtraDB-Cluster-galera.x86_64 2.7-1.157.rhel6 percona
2.7-1.157.rhel6 percona
Percona-XtraDB-Cluster-server.x86_64 1:5.5.33-23.7.6.495.rhel6 percona
Percona-XtraDB-Cluster-shared.x86_64 1:5.5.33-23.7.6.495.rhel6 percona
Percona-XtraDB-Cluster-test.x86_64 1:5.5.33-23.7.6.495.rhel6 percona
jemalloc.x86_64 3.3.1-1.el6 percona
jemalloc-devel.x86_64 3.3.1-1.el6 percona
percona-cacti-templates.noarch 1.0.4-1 percona
percona-nagios-plugins.noarch 1.0.4-1 percona
percona-playback.x86_64 0.6-2.el6 percona
percona-playback-debuginfo.x86_64 0.6-2.el6 percona
percona-playback-devel.x86_64 0.6-2.el6 percona
percona-xtrabackup.x86_64 2.1.5-680.rhel6 percona
percona-xtrabackup-20.x86_64 2.0.8-587.rhel6 percona
percona-xtrabackup-20-debuginfo.x86_64 2.0.8-587.rhel6 percona
percona-xtrabackup-20-test.x86_64 2.0.8-587.rhel6 percona
percona-xtrabackup-test.x86_64 2.1.5-680.rhel6 percona
qpress.x86_64 11-1.el6 percona
qpress-debuginfo.x86_64 11-1.el6 percona

 
希望這將有助於你能夠超越中可能會有什麼標準回購此刻得到更新。

2013年9月24日星期二

ERROR 1146(42S02):表不存在

Original post: http://anothermysqldba.blogspot.com/2013/09/error-1146-42s02-table-doesnt-exist.html

因此,一些你可能遇到過下面的錯誤安裝MySQL 5.6時:
  • ERROR 1146(42S02):表'mysql.innodb_index_stats'不存在
  • ERROR 1146(42S02):表'mysql.innodb_table_stats'不存在
  • ERROR 1146(42S02):表'mysql.slave_master_info'不存在
  • ERROR 1146(42S02):表'mysql.slave_relay_log_info'不存在
  • ERROR 1146(42S02):表'mysql.slave_worker_info'不存在
您可能會驚訝,你看到這個錯誤在一個全新的數據庫安裝。 你並不孤單。 儘管該問題是可以解決的。

最安全的做法是重新安裝mysql數據庫,通過下面的命令:mysql_install_db的
最近,我不得不這樣做對每一個新安裝的MySQL 5.6(是的,它的發生不止一次)在Solaris SPARC環境中。

您可以嘗試使用以下方法來創建丟失的表,但我發現,最好讓所有的一切清潔,並確保所有的設置與mysql_install_db的。
有人建議我在上面提到的“啟動修復,但我喜歡,我說我喜歡mysql_install_db的掛鉤,以確保一切正確安裝。

我有其他的博客文章,包括有關使用此命令的例子:

關於這一主題的相關文章:
如果你碰到這種表mysql_install_db的範圍之外看到彼得的博客文章,以幫助您開始:

2013年9月11日星期三

mysqld_multi的

Original post: http://anothermysqldba.blogspot.com/2013/09/mysqldmulti.html

所以我最近mysqld_multi的工作,我意識到,這是一個功能,我沒有看到在很多博客文章,這些天。 他們確實存在,我列出了一些在底部的這篇文章,供大家參考。

你的原因可能各不相同,也值得商榷的,當它涉及到的概念: 應在同一硬件上運行一個以上的MySQL實例

為了避免混淆,如果你想安裝另一個MySQL實例用於測試目的,不作為生產實例,那麼你應該只是工作與MySQL沙箱 如果出於某種原因不能正常工作,你可以執行另一台服務器一樣,很多人通常做的:創建新的my.cnf文件並啟動mysql服務器mysqld_safe的和自定義命令。

mysqld_multi的輕鬆了許多,您可以運行多個服務器。

例如:
你有一個輔助服務器在端口3306上運行。 它是一個的READ_ONLY奴隸和在原地等待成為新的主服務器,目前的主要失敗時,你有很多的硬件。 你也想利用Percona的工具包 ,有一個複製的輔助服務器在延遲模式下運行的。 如果你可以升級到MySQL 5.6,那麼你不會需要PT-奴隸延遲 ,但目前這是不是一種選擇。

在這兩種情況下,你有預算限制和,不允許另一台服務器。 所以你放棄了嗎? 有足夠的磁盤空間來容納另一個版本的服務器上的二次盒,所以為什麼不呢? 啟動和停止的定制版本等的想法,可以把一些。 因此,你可以設立一個新版本的my.cnf文件,但首先你可以做以下。

挑選你喜歡的編輯器(即:VI)
vi /etc/multi_my.cnf
[mysqld_multi]
mysqld = /usr/local/bin/mysqld_safe
mysqladmin = /usr/local/bin/mysqladmin
user = mysql
log = /var/log/multi_mysql.log

# Port 3306 Server
[mysqld1]
>socket = /tmp/mysql_3306.sock
port = 3306
pid-file = /var/lib/mysql/mysql_3306.pid
datadir = /var/lib/mysql/
user = mysql
現在你可以從你的my.cnf文件的[mysqld]部分,並把它複製到這個位置。

cat /etc/my.cnf >> /etc/multi_my.cnf
如果你使用上面的命令編輯進行清理,所以你只需要複製過來的[mysqld]部分。

然後,您可以創建的3307端口部分。
# Port 3307 Server
[mysqld2]
socket = /tmp/mysql_3307.sock
port = 3307
pid-file = /var/lib/mysql2/mysql_3307.pid
datadir = /var/lib/mysql2/
user = mysql
配置的例子可以在這裡找到:
http://dev.mysql.com/doc/refman/5.6/en/mysqld-multi.html

在這個例子中,我將假定您將創建一個備份Xtrabackup Percona的3306端口服務器,並將其放置到新的datadir的。
innobackupex --defaults-file=/etc/my.cnf --user=root --password=<password> --port=3306 --no-timestamp /var/lib/mysql2/
innobackupex --apply-log /var/lib/mysql2/
現在你可以測試這個現在mysqld_multi的二進制文件(/ usr / bin中/ mysqld_multi的),或設置在啟動和停止腳本。 模板自帶你的MySQL安裝的/ usr /共享/ mysql /下mysqld_multi.server

您可以複製此init.d目錄或從當前位置進行測試。
該腳本將默認在/ etc / my.cnf文件。 所以開始測試 - default_file = /等/ multi_my.cnf的報告

“報告”選項是類似的狀態參數,如果服務器運行。 如果您選擇運行作為默認的過程中,你可以把它鏈接或複製/ etc / multi_my.cnf中,作為新的/ etc / my.cnf中
/etc/init.d/mysqld_multi.server report 1,2
/etc/init.d/mysqld_multi.server report 1
/etc/init.d/mysqld_multi.server report 2

以上,然後給你的運行狀態,每個給予說法,當然不同的MySQL實例的引用。 你可以做同樣的以下選項:開始|停止|舉報|重啟}

如果一切順利,你可以“開始2”將開始在端口3307上的實例。 然後登錄和改變主binlog的位置信息提供在xtrabackup_binlog_info文件。
CHANGE MASTER TO
MASTER_HOST='localhost',
MASTER_PORT=3306,
MASTER_LOG_FILE='<log filename>',
MASTER_LOG_POS=<position>;

Start slave;
現在你有次要從屬服務器的副本。 如果使用PT-從延遲,你可以執行下面的命令,默認的是一個小時的延遲。
pt-slave-delay --port=3307 --socket=/tmp/mysql_3307.sock --host=localhost

希望這至少可以讓你開始。

2013年9月7日星期六

MySQL的訪問和複製被secure_auth

Original post: http://anothermysqldba.blogspot.com/2013/09/mysql-access-and-replication-blocked-by.html

ERROR 2049 (HY000): Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled)

如果你已經嘗試連接到MySQL數據庫,你會看到這個錯誤,那麼你需要有有效的41byte的哈希密碼。 如果您不確定您有執行下面的SQL。 如果你有16個字符的密碼,他們年紀大了密碼。

select Password from mysql.user;

下面是我解決了這個作為一個從MySQL 5.0遷移到MySQL 5.6的一部分。

MySQL 5.0的服務器有一個上了年紀的預4.1密碼和有效41byte密碼的混合物。 因為在MySQL 5.0服務器有一些舊的密碼,我決定甩MySQL表的一部分設置複製的賬戶。 我所做的,除了mysql數據庫中的所有數據庫轉儲。 這可以保證,我會保持有效的MySQL 5.6表增強。

MySQL 5.6的服務器上安裝容易了,我將轉儲裝載數據。 遷移的一部分是使用複製,而他們評估了新的數據庫。 雖然我測試了MySQL 5.6的服務器上複製用戶帳戶。 我得到的響應是在頁面的頂部的錯誤。 複製將無法運行,當然,沒有一個有效的用戶帳戶。 這是為什麼錯誤日誌給我這個錯誤:
[ERROR] Slave I/O: error connecting to master '<user>@<hostname>:3306' - retry-time: 10 retries: 68, Error_code: 2049

MySQL 5.0的服務器上的帳戶快速審查表明,建立了新帳戶前4.1密碼。 所以,我需要一個有效的41字節的密碼升級帳戶。

下面的查詢表明,它們的確有啟用舊密碼。 所以,我必須停用,並再次更新用戶帳戶設置密碼,作為一個有效的41字節的散列。

>SELECT @@session.old_passwords, @@global.old_passwords;
+-------------------------+------------------------+
| @@session.old_passwords | @@global.old_passwords |
+-------------------------+------------------------+
| 1 | 1 |
+-------------------------+------------------------+
1 row in set (0.00 sec)


>SET @@session.old_passwords = 0;
Query OK, 0 rows affected (0.00 sec)

>GRANT REPLICATION SLAVE ON *.* TO '<user>'@'<ip_address>' IDENTIFIED BY '<Password>';
Query OK, 0 rows affected (0.00 sec)

密碼的檢查表明現在密碼為41byte的密碼。 我能夠從輔助服務器連接到主服務器和避免secure_auth錯誤。 複製連接方便,問題得到解決。

展望未來,我需要得到的MySQL 5.0用戶帳戶上的MySQL 5.6服務器。 (因為我跳過作為建築輔助服務器的一部分。)

客戶端需要再次為每個用戶設置的補助,不管有效密碼或。
所以,我指示他們執行下面的SQL。 我可以做到這一點,但我需要知道他們的密碼,這是沒有必要的。

對於每個用戶在他們的系統。 你不必做root用戶,因為你已經有了一個有效的根帳戶的5.6系統上。

>SET @@session.old_passwords = 0;
>show grants for '<User>'@'<Host>';
為了收集需要為每個用戶運行下面的sql:
SELECT CONCAT("SHOW GRANTS FOR '",User,"'@'",Host,"';") as sql_command from mysql.user;

對於每個結果執行“展會補助”的語句,然後執行該語句。
聲明應類似於以下內容:

GRANT USAGE ON *.* TO 'bob'@'%.example.org' IDENTIFIED BY 'cleartext password';

複製My​​SQL 5.6的服務器上創建和填充MySQL表。

更可以在這裡找到:
http://dev.mysql.com/doc/refman/5.6/en/password-hashing.html

2013年9月3日星期二

MySQL的優化技巧 - thread_cache_size

Original post: http://anothermysqldba.blogspot.com/2013/09/mysql-optimization-tip-threadcachesize.html

最近我遇到了一個MySQL數據庫,輕鬆運行PROCESSLIST 300至600行。 輕鬆設置最大連接這一數額的兩倍以上。 這是一組,我只是不同意。 我被稱為,因為它也證明了自己不是工作非常好。 所以這裡有一些我的想法的過程中,我發現了。

在我看來,大部分將不再需要在使用MySQL數據庫的最大連接數或1500或以上。 允許更多的連接到您的服務器帶來更多的開銷。 使用有效的連接。
二,了解Threads_Created的使用與連接%。 你可能認為這是創建的線程命中率。 順便說一句.. 這是不是新的信息,這是信息已經理解在社會上一些時間。 我不假裝提出這比任何其他方式試圖去幫助別人。 所以做以下理解你的電流%
顯示像'Threads_Created的'狀態;
設置@ Threads_Created的的= <從上面的查詢結果;
像“連接”的顯示狀態;
設置連接= <從上面的查詢結果;
選擇100 - ((@ Threads_Created的/ @連接)* 100)“Threads_Created的連接%”\ G



所以,如果你執行上述過程,你的百分比是什麼? 你想這是盡可能接近100。 因此,例如,最近,我遇到的服務器有%至10%以下。 那麼,你如何解決這個問題,並提高你的%?


變量thread_cache_size默認設置為0。 如果你開始注意到你的過程中成長,但不會阻止死鎖等查詢,那麼你應該檢查你的“Threads_Created的連接%”如上所述。 %將是低的,它很可能。 您可以提高%和找到甜蜜點適合您的服務器環境大大改善你的數據庫性能。 thread_cache_size可以改變現場環境。 因此,這可以讓你設置的變量,然後監視狀態“Threads_Created的價值”(見上文得到的價值)。 如果這種情況持續下去,價值遞增,然後繼續提高thread_cache_size 。 通常情況下,我更喜歡提高了幾然後移動到第500的時間的時間值25。 我經常檢查Threads_Created的連接%“和”Threads_Created的。 一旦你得到靠近甜蜜點行開始下降,你會發現獲得PROCESSLIST%。 通常一個調整thread_cache_size將讓你進入甜蜜點。

每個服務器和環境是不同的。
有些服務器可能thread_cache_size 50與98%,而有98% thread_cache_size設置為15000。 最大為16384。

所以,如果沒有別的... 找出你的百分比是先考慮作出調整。