BMS-HOSxP Community
HOSxP => แจ้งปัญหา / ขอความช่วยเหลือ => ข้อความที่เริ่มโดย: apatnon86 ที่ สิงหาคม 22, 2013, 10:08:35 AM
-
ผมจะทำการอัพเกรด MySQL เครื่อง Master เลยจะมาขอสอบถามอาจารย์ทั้งหลายในบอร์ดครับ และเป็นแนวทางให้กับที่อื่นด้วยในการที่จะอัพเกรดเวอร์ชัน MySQL เป็น 5.5
ยึดตามคำแนะนำของคุณ realaerm นะครับ
1. check version mysql โดยใช้คำสั่ง mysql --version
เช็คแล้วได้ = 5.1.30
check version Linux โดยใช้คำสั่ง rpm -q centos-release
เช็คแล้วได้ = 5.2
2. download version mysql ที่ต้องการมาใช้ (ในที่นี้แนะนำ mysql ของ percona นะครับ)
ดาวน์โหลดมาแล้วครับ Percona-Server-shared-55-5.5.31-rel30.3.520.rhel5.x86_64.rpm
Percona-Server-client-55-5.5.31-rel30.3.520.rhel5.x86_64.rpm
Percona-Server-server-55-5.5.31-rel30.3.520.rhel5.x86_64.rpm
3. ไฟล์ที่ใช้ในการติดตั้งจะต้องมีไฟล์ client , shared , server นะครับ ชื่อไฟล์จะมีคำเหล่านี้อยู่นะครับ เช่น
MySQL-client-percona-5.5.xx-x.rhel6.x64_i86.rpm
MySQL-shared-percona-5.5.xx-x.rhel6.x64_i86.rpm
MySQL-server-percona-5.5.xx-x.rhel6.x64_i86.rpm
4. เมื่อได้ไฟล์นั้นมาแล้ว stop mysql ก่อน การ upgrade ครับ โดยใช้คำสั่ง
#service mysqld stop
5. จากนั้นถอนของเก่าออกโดยใช้คำสั่ง ดังนี้
#yum remove mysql
#yum remove mysql-server
(คำสั่งนี้จะลบโปรแกรมออกแต่ข้อมูลไม่หายไป)
6. จากนั้นติดตั้ง version ใหม่เข้าไปโดยใช้คำสั่ง
#rpm -ivh --nodeps --force MySQL-client-percona-5.5.xx-x.rhel6.x64_i86.rpm
#rpm -ivh --nodeps --force MySQL-shared-percona-5.5.xx-x.rhel6.x64_i86.rpm
#rpm -ivh --nodeps --force MySQL-server-percona-5.5.xx-x.rhel6.x64_i86.rpm
ผมต้องเปลี่ยนเป็น
#rpm -ivh --nodeps --force Percona-Server-shared-55-5.5.31-rel30.3.520.rhel5.x86_64.rpm
#rpm -ivh --nodeps --force Percona-Server-client-55-5.5.31-rel30.3.520.rhel5.x86_64.rpm
#rpm -ivh --nodeps --force Percona-Server-server-55-5.5.31-rel30.3.520.rhel5.x86_64.rpm
ใช่หรือเปล่าครับ
7. จากนั้นเมื่อติดตั้งเสร็จเรียบร้อยแล้วให้ใช้คำสั่ง upgrade mysql โดยใช้คำสั่งดังนี้
#mysql_upgrade -u root
แล้วรอจนกว่าจะเสร็จ เป็นอันเสร็จสิ้นกระบวนการ
ปล.ระวังเรื่อง my.cnf ถ้าอัพจาก version เก่าๆมา เป็น 5.5.xx แล้วจะมีบางฟังชั่นใช้งานไม่ได้ ตอนลงเสร็จแล้วจะ start mysql ไม่ได้ครับ ที่นึกออกที่ต้องเข้าไปแก้จะมี
1. default-character-set=tis620 จะใช้ไม่ได้ให้ comment เอาไว้ แล้วเปลี่ยนเป็น character-set-server=tis620 เป็นต้น
2. skip-locking ให้ comment เอาไว้อีกเช่นกัน
ตอนนี้ผมเตรียมความพร้อมถึงข้อ 2 แล้ว ถ้าทำตามคำแนะนำนี้สามารถอัพเกรดได้ ไม่มีผลเสียหายต่อข้อมมูล
จริงหรือเปล่าครับ
-
อีก 1 คำถามครับ ผมจะสำรองข้อมูลก่อนลงมืออัพเกรด การสำรองข้อมูลระหว่าง Mannual Backup ในเมนูสำรองข้อมูลของ HOSxP กับ สำรองข้อมูลโดยใช้โปรแกรม BMSxTraBackup อันไหนสำรองข้อมูลได้ครบกว่ากัน และใช้เวลาต่างกันมากหรือเปล่าครับ
เผื่อไม่สำเร็จต้องติดตั้ง Linux และ MySQL ใหม่หมด จะได้นำข้อมูลมานำเข้าใหม่
รายงานสดวันเสาร์นี้ เริ่ม 22.00
-
ข้ออื่นไม่แน่ใจ แต่ข้อ 6 ผมใช้
rpm -ivh Percona-Server-* --nodeps --force แค่นี้ครับ
-
ผมใช้แบบนี้ครับ
https://www.facebook.com/groups/hosxp/doc/644175392268803/
8 ขั้นตอนแสนง่าย กับการ Upgrade Percona 5.5.18 ไปเป็น 5.5.32 มาดูกัน....
============================================
1. หยุดการทำงานของ MySQL (Persona)
[root@hosxp2 /]# service mysql stop
2. ตรวจสอบ Package ของ MySQL หรือ Percona ที่ติดตั้งอยู่ก่อน
[root@hosxp2 /]# rpm -qa | grep -i
PerconaPercona-Server-server-55-5.5.18-rel23.0.203.rhel.x86_64
Percona-Server-client-55-5.5.18-rel23.0.203.rhel.x86_64
Percona-Server-shared-55-5.5.18-rel23.0.203.rhel.x86_64
3. Uninstall Percona เดิมที่มีอยู่
[root@hosxp2 /]# rpm -e Percona-Server-server-55-5.5.18-rel23.0.203.rhel.x86_64
[root@hosxp2 /]# rpm -e Percona-Server-client-55-5.5.18-rel23.0.203.rhel.x86_64
[root@hosxp2 /]# rpm -e Percona-Server-shared-55-5.5.18-rel23.0.203.rhel.x86_64
4. ตรวจสอบ Package ของ Percona อีกครั้ง
[root@hosxp2 tmp]# rpm -qa | grep -i percona
5. เปลี่ยน path ไปยังตำแหน่งที่เก็บ Percona version ใหม่ที่ download มา
[root@hosxp2 /]# cd /tmp
6. ติดตั้ง Percona Version ใหม่ (5.5.32)
[root@hosxp2 tmp]# rpm -ivh Percona-Server-*
warning: Percona-Server-client-55-5.5.32-rel31.0.549.rhel6.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID cd2efd2a: NOKEY
Preparing... ########################################### [100%]
1:Percona-Server-shared-5########################################### [ 33%]
2:Percona-Server-client-5########################################### [ 67%]
3:Percona-Server-server-5########################################### [100%]
Percona Server is distributed with several useful UDF (User Defined Function) fr om Maatkit.
Run the following commands to create these functions:
mysql -e "CREATE FUNCTION fnv1a_64 RETURNS INTEGER SONAME 'libfnv1a_udf.so'"
mysql -e "CREATE FUNCTION fnv_64 RETURNS INTEGER SONAME 'libfnv_udf.so'"
mysql -e "CREATE FUNCTION murmur_hash RETURNS INTEGER SONAME 'libmurmur_udf.so'"
See http://code.google.com/p/maatkit/source/browse/trunk/udf for more details
7. เริ่มการทำงานของ Percona อีกครั้ง
[root@hosxp2 tmp]# service mysql start
8. ตรวจสอบความสมบูรณ์ของการติดตั้ง Percona
[root@hosxp2 tmp]# mysql_upgrade -u xxxxx -p
Enter password:
Looking for 'mysql' as: mysql
Looking for 'mysqlcheck' as: mysqlcheck
..........................................
[root@hosxp2 tmp]#
============================================
ง่ายไหมครับ
หากสั่ง mysql_upgrade -u xxxxx -p ซ้ำอีกครั้ง จะมีข้อความดังนี้
This installation of MySQL is already upgraded to 5.5.32, use --force if you still need to run mysql_upgrade
[root@hosxp2 tmp]#
เย้......
*****************************************
ปล.
1. xxxxx ในคำสั่ง mysql_upgrade -u xxxxx -p ให้ใส่ username ของ mysql เดิมที่ท่านใช้อยู่นะครับ
2. อย่าลืมเลือก Percona หรือ MySQL ที่เหมาะสมกับ OS ของท่านด้วยนะครับ เช่น
CentOS 5 ต้องเลือก package ที่มีคำว่า rhel5
CentOS 6 ต้องเลือก package ที่มีคำว่า rhel6
CentOS 32 bit ต้องเลือก package ที่มีคำว่า i686
CentOS 64 bit ต้องเลือก package ที่มีคำว่า x86_64
-
ผมใช้แบบนี้ครับ
https://www.facebook.com/groups/hosxp/doc/644175392268803/
8 ขั้นตอนแสนง่าย กับการ Upgrade Percona 5.5.18 ไปเป็น 5.5.32 มาดูกัน....
============================================
1. หยุดการทำงานของ MySQL (Persona)
[root@hosxp2 /]# service mysql stop
2. ตรวจสอบ Package ของ MySQL หรือ Percona ที่ติดตั้งอยู่ก่อน
[root@hosxp2 /]# rpm -qa | grep -i
PerconaPercona-Server-server-55-5.5.18-rel23.0.203.rhel.x86_64
Percona-Server-client-55-5.5.18-rel23.0.203.rhel.x86_64
Percona-Server-shared-55-5.5.18-rel23.0.203.rhel.x86_64
3. Uninstall Percona เดิมที่มีอยู่
[root@hosxp2 /]# rpm -e Percona-Server-server-55-5.5.18-rel23.0.203.rhel.x86_64
[root@hosxp2 /]# rpm -e Percona-Server-client-55-5.5.18-rel23.0.203.rhel.x86_64
[root@hosxp2 /]# rpm -e Percona-Server-shared-55-5.5.18-rel23.0.203.rhel.x86_64
4. ตรวจสอบ Package ของ Percona อีกครั้ง
[root@hosxp2 tmp]# rpm -qa | grep -i percona
5. เปลี่ยน path ไปยังตำแหน่งที่เก็บ Percona version ใหม่ที่ download มา
[root@hosxp2 /]# cd /tmp
6. ติดตั้ง Percona Version ใหม่ (5.5.32)
[root@hosxp2 tmp]# rpm -ivh Percona-Server-*
warning: Percona-Server-client-55-5.5.32-rel31.0.549.rhel6.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID cd2efd2a: NOKEY
Preparing... ########################################### [100%]
1:Percona-Server-shared-5########################################### [ 33%]
2:Percona-Server-client-5########################################### [ 67%]
3:Percona-Server-server-5########################################### [100%]
Percona Server is distributed with several useful UDF (User Defined Function) fr om Maatkit.
Run the following commands to create these functions:
mysql -e "CREATE FUNCTION fnv1a_64 RETURNS INTEGER SONAME 'libfnv1a_udf.so'"
mysql -e "CREATE FUNCTION fnv_64 RETURNS INTEGER SONAME 'libfnv_udf.so'"
mysql -e "CREATE FUNCTION murmur_hash RETURNS INTEGER SONAME 'libmurmur_udf.so'"
See http://code.google.com/p/maatkit/source/browse/trunk/udf for more details
7. เริ่มการทำงานของ Percona อีกครั้ง
[root@hosxp2 tmp]# service mysql start
8. ตรวจสอบความสมบูรณ์ของการติดตั้ง Percona
[root@hosxp2 tmp]# mysql_upgrade -u xxxxx -p
Enter password:
Looking for 'mysql' as: mysql
Looking for 'mysqlcheck' as: mysqlcheck
..........................................
[root@hosxp2 tmp]#
============================================
ง่ายไหมครับ
หากสั่ง mysql_upgrade -u xxxxx -p ซ้ำอีกครั้ง จะมีข้อความดังนี้
This installation of MySQL is already upgraded to 5.5.32, use --force if you still need to run mysql_upgrade
[root@hosxp2 tmp]#
เย้......
*****************************************
ปล.
1. xxxxx ในคำสั่ง mysql_upgrade -u xxxxx -p ให้ใส่ username ของ mysql เดิมที่ท่านใช้อยู่นะครับ
2. อย่าลืมเลือก Percona หรือ MySQL ที่เหมาะสมกับ OS ของท่านด้วยนะครับ เช่น
CentOS 5 ต้องเลือก package ที่มีคำว่า rhel5
CentOS 6 ต้องเลือก package ที่มีคำว่า rhel6
CentOS 32 bit ต้องเลือก package ที่มีคำว่า i686
CentOS 64 bit ต้องเลือก package ที่มีคำว่า x86_64
ถ้าใช้ของ อ.โก้ แล้วข้อมูลจะหายไหมครับ แต่ทำไมใช้ BMSxTraBackup ข้อมูลถึงหายครับ... >:( >:( >:(
-
ถ้าใช้ของ อ.โก้ แล้วข้อมูลจะหายไหมครับ แต่ทำไมใช้ BMSxTraBackup ข้อมูลถึงหายครับ... >:( >:( >:(
ผมทำมาแล้ว ข้อมูลยังอยู่ทั้งหมด เหมือนเรา uninstall word แต่เอกสารที่เราพิพม์ไว้ยังอยู่
BMSxTraBackupGUI นั้นถูกสร้างมาเพื่อใช้ในการติดตั้ง MySQL ไม่ได้ใช้ในการ upgrade MySQL ครับ
-
mysql -e "CREATE FUNCTION fnv1a_64 RETURNS INTEGER SONAME 'libfnv1a_udf.so'"
mysql -e "CREATE FUNCTION fnv_64 RETURNS INTEGER SONAME 'libfnv_udf.so'"
mysql -e "CREATE FUNCTION murmur_hash RETURNS INTEGER SONAME 'libmurmur_udf.so'"
3 บรรทัดข้างบนนีต้อง ทำด้วยไหมครับ
-
ตรง See http://code.google.com/p/maatkit/source/browse/trunk/udf for more details คืออะไรครับ อ.โก้
-
ตรง See http://code.google.com/p/maatkit/source/browse/trunk/udf for more details คืออะไรครับ อ.โก้
อยากรู้ว่า Maatkit คืออะไรให้กดไปตาม link จะ search มาให้
-
mysql -e "CREATE FUNCTION fnv1a_64 RETURNS INTEGER SONAME 'libfnv1a_udf.so'"
mysql -e "CREATE FUNCTION fnv_64 RETURNS INTEGER SONAME 'libfnv_udf.so'"
mysql -e "CREATE FUNCTION murmur_hash RETURNS INTEGER SONAME 'libmurmur_udf.so'"
3 บรรทัดข้างบนนีต้อง ทำด้วยไหมครับ
ไม่ต้องทำครับ เพราะเราไม่ได้ใช้ Maatkit
-
up MySQL 55.5.5.32 แล้วครับ ลงผ่าน แต่ พอรัน mysql ไม่ผ่านครับ ต้องไปแก้ตรงใหนบ้างครับกรณีนี้ครับ
-
มีวิธีอัพเกรด mysql จาก 5.1 เป็น 5.5 (ตัว hosxp pcu)
-
up MySQL 55.5.5.32 แล้วครับ ลงผ่าน แต่ พอรัน mysql ไม่ผ่านครับ ต้องไปแก้ตรงใหนบ้างครับกรณีนี้ครับ
ต้องดู log file ประกอบครับ
cat /var/ljb/mysql/yingo-hospital.err
เอารายละเอียดมาดู จึงจะตอบได้ครับ
-
ติดเหมือนกันค่ะ
130825 17:29:13 mysqld_safe mysqld from pid file /var/lib/mysql/ngaohos2.pid ended
130825 17:30:39 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
130825 17:30:39 [Warning] /usr/sbin/mysqld: ignoring option '--character-set-client-handshake' due to invalid value 'tis620'
130825 17:30:39 [Warning] /usr/sbin/mysqld: ignoring option '--innodb-file-format-check' due to invalid value 'Antelope'
130825 17:30:39 [Note] Plugin 'FEDERATED' is disabled.
130825 17:30:39 InnoDB: The InnoDB memory heap is disabled
130825 17:30:39 InnoDB: Mutexes and rw_locks use GCC atomic builtins
130825 17:30:39 InnoDB: Compressed tables use zlib 1.2.3
130825 17:30:39 InnoDB: Using Linux native AIO
130825 17:30:39 InnoDB: Initializing buffer pool, size = 2.3G
130825 17:30:39 InnoDB: Completed initialization of buffer pool
130825 17:30:39 InnoDB: highest supported file format is Barracuda.
130825 17:30:40 Percona XtraDB (http://www.percona.com) 5.5.32-rel31.0 started; log sequence number 106188726866
130825 17:30:40 [ERROR] /usr/sbin/mysqld: unknown variable 'default_table_type=INNODB'
130825 17:30:40 [ERROR] Aborting
130825 17:30:40 InnoDB: Starting shutdown...
130825 17:30:45 InnoDB: Shutdown completed; log sequence number 106188726866
130825 17:30:45 [Note] /usr/sbin/mysqld: Shutdown complete
130825 17:30:45 mysqld_safe mysqld from pid file /var/lib/mysql/ngaohos2.pid ended
130825 17:31:53 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
130825 17:31:53 [Warning] /usr/sbin/mysqld: ignoring option '--character-set-client-handshake' due to invalid value 'tis620'
130825 17:31:53 [Warning] /usr/sbin/mysqld: ignoring option '--innodb-file-format-check' due to invalid value 'Antelope'
130825 17:31:53 [Note] Plugin 'FEDERATED' is disabled.
130825 17:31:53 InnoDB: The InnoDB memory heap is disabled
130825 17:31:53 InnoDB: Mutexes and rw_locks use GCC atomic builtins
130825 17:31:53 InnoDB: Compressed tables use zlib 1.2.3
130825 17:31:53 InnoDB: Using Linux native AIO
130825 17:31:53 InnoDB: Initializing buffer pool, size = 2.3G
130825 17:31:53 InnoDB: Completed initialization of buffer pool
130825 17:31:53 InnoDB: highest supported file format is Barracuda.
130825 17:31:54 InnoDB: Waiting for the background threads to start
130825 17:31:55 Percona XtraDB (http://www.percona.com) 5.5.32-rel31.0 started; log sequence number 106188726866
130825 17:31:55 [ERROR] /usr/sbin/mysqld: unknown variable 'default_table_type=INNODB'
130825 17:31:55 [ERROR] Aborting
130825 17:31:55 InnoDB: Starting shutdown...
130825 17:31:59 InnoDB: Shutdown completed; log sequence number 106188726866
130825 17:31:59 [Note] /usr/sbin/mysqld: Shutdown complete
130825 17:31:59 mysqld_safe mysqld from pid file /var/lib/mysql/ngaohos2.pid ended
-
คุณ mini แก้ my.cnf ตรงบรรทัด default_table_type โดยการใส่ # ใช้ข้างหน้า แล้วสั่ง service start mysql ครับ
-
ลองทำตาม อ.pop เทพบุตรสุดเทห์ แห่งพนมไพร ได้เลยครับ
#default_table_type=INNODB เนื่องจาก mysql-5.5.xx ไม่ใช้ตัวนี้แล้วครับ
อ้างอิง ==>
http://hosxp.net/index.php?option=com_smf&Itemid=28&topic=24153.msg206531#msg206531
http://hosxp.net/index.php?option=com_smf&Itemid=28&topic=27068.15
-
ขอบคุณค่ะ
-
สั่ง mysql_upgrade ไม่ผ่าน
ฟ้อง looking for 'mysql' as 'mysql'
looking for 'mysqlcheck as 'mysqlcheck'
FATAL ERROR : Upgrade failed
-
สั่ง mysql_upgrade ไม่ผ่าน
ฟ้อง looking for 'mysql' as 'mysql'
looking for 'mysqlcheck as 'mysqlcheck'
FATAL ERROR : Upgrade failed
... mysql ยังไม่ทำงานครับ
ติดตั้ง mysql เสร็จแล้ว ให้ #service mysql start ก่อนครับ
แล้วค่อย #mysql_upgrade ... :D
-
การกำหนด character-set-server=tis620
จะกำหนดไว้ที่หัวข้อไหนดีครับ
[mysqld] หรือ [mysql] ครับ แล้วที่หัวข้อ [client] ต้องกำหนด default-character-set-server=tis620 ด้วยไหมครับ
-
การกำหนด character-set-server=tis620
จะกำหนดไว้ที่หัวข้อไหนดีครับ
[mysqld] หรือ [mysql] ครับ แล้วที่หัวข้อ [client] ต้องกำหนด default-character-set-server=tis620 ด้วยไหมครับ
-----------------------------------------------------------------
ลองดูตัวอย่าง my.cnf ค่า Config ที่ได้จากการใช้ Tool BMSxTraBackupGUI ในการติดตั้ง MySQL Percona-Server-server-55-5.5.32 ครับ