Thursday 6 June 2013

การติดตั้ง upgrade mysql percona บน CentOS

วิธี upgrade mysql บน CentOS แบบคร่าวๆนะครับ

1. check version mysql โดยใช้คำสั่ง mysql --version

2. download version mysql ที่ต้องการมาใช้
(ในที่นี้แนะนำ mysql ของ percona นะครับ)
ที่นี่ http://www.percona.com/downloads/

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 ก่อน 
  service Mysql 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

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.ทุกการกระทำมีความเสี่ยงกรุณาทำด้วยความระมัดระวัง ด้วยความหวังดี 

[root@hosxp ~]mysql -v      #ดูเวอร์ชั่น mysql
[root@hosxp ~]uname -a      #ดูเวอร์ชั่น OS
[
root@hosxp ~]#vi /etc/sysconfig/iptables
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
setenforce 0

[root@hosxp ~]#vi /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT ## เพิ้มค่านี้เข้าไป
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT ## เพิ้มค่านี้เข้าไป
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

[root@hosxp ~]#vi /etc/security/limits.conf
# เพิ่มข้อมูลนี้เข้าไป
root     soft     nofile     50000
root     hard     nofile     50000
mysql     soft     nofile     50000
mysql     hard     nofile     50000


## ลบ MySQL ในเครื่องออก
[root@hosxp ~]#rpm -qa|grep mysql                #  ค้นตัวติดตั้งที่ขึ้นต้นด้วย mysql
[root@hosxp ~]#rpm -e --nodeps mysqlxxxxx        # ลบ Mysql
[root@hosxp ~]cp my_MariaDB_xxx.cnf /etc/my.cnf   ก๊อปปี้ my.cnf ที่ตั้งค่าไว้แล้วไปที่ /etc/my.cnf 

## Install MySQL MariaDB
[root@hosxp ~]#rpm -ihv MariaDB-5.5.45-centos6-x86_64-client.rpm --nodeps --force
[root@hosxp ~]#rpm -ihv MariaDB-5.5.45-centos6-x86_64-shared.rpm --nodeps --force
[root@hosxp ~]#rpm -ihv MariaDB-5.5.45-centos6-x86_64-server.rpm --nodeps --force

[root@hosxp ~] service mysql start

** หาก Start MySQL ไม่ได้ บอก pid error ให้ทำตามนี้
[root@hosxp ~]rm -rf /var/lib/mysql/*
[root@hosxp ~]ls -al /var/lib/mysql/
[root@hosxp ~]chown -Rv mysql:mysql /var/lib/mysql/*
[root@hosxp ~]sudo -u mysql mysql_install_db
[root@hosxp ~]service mysql start

[root@hosxp ~]/usr/bin/mysqladmin -u sa password 'sa'    เปลี่ยน password ของ root

##MySQL Create database
[root@hosxp ~]mysql -u root -p 
MariaDB [(none)]>

create database hosxp_pcu default character set tis620;
grant all privileges on *.* to sa@'% identified by 'sa' with grant option;
grant all on *.* to sa@'%' identified by 'sa' with grant option;
flush privileges;

show databases;

MariaDB [(none)]>Ctrl-C   to exit!


[root@hosxp ~]
 






No comments: