.... အားလံုးအတြက္ မဟုတ္ခဲ့ရင္ေတာင္ တစ္စံုတစ္ရာ တစ္စံုတစ္ေယာက္အတြက္ ေႏြးေထြးတဲ့ ေကာင္းကင္ငယ္ေလး ျဖစ္ပါရေစ ....
Showing posts with label sql. Show all posts
Showing posts with label sql. Show all posts

Monday, January 7, 2013

Forgot password Or Recover MySQL Root Password


MySQL root Password ပတ္စ္၀ါဒ့္ေမ့သြားတဲ့အခါျပန္ျပီးေခၚရေအာင္ ျပင္ရေအာင္
အဆင့္ ငါးဆင့္နဲ႔ သြားလိုက္ရေအာင္
ပထမ mysql ကို stop လိုက္ပါမယ္
# /etc/init.d/mysql stop

ဒုတိယ ကေတာ့ sql ထဲကို၀င္ဖို႔အတြက္ table grant ကို ေက်ာ္မယ့္အဆင့္ပါ
# mysqld_safe --skip-grant-tables &

တတိယ ကေတာ့ sql server ထဲကို၀င္ပါမယ္
# mysql -u root

ေရာက္သြားျပီဆိုရင္ ေအာ္ကမွာေပးထားတဲ့အတိုင္း ပါတ္စ္၀ါဒ္ခ်ိန္းပါ့မယ္
mysql>
mysql> use mysql;
mysql> update user set password=PASSWORD("YOUR_PASSWDအသစ္ေပးမယ့္ ပတ္စ္၀ါဒ့္") where User='root';
mysql> flush privileges;
mysql> quit

အဲဒါျပီးရင္ေတာ့ ျပန္၀င္ၾကည့္ရေအာင္
# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.1.66 Source distribution

Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

ေနာက္ဆံုးေတာ့ sql ေလးျပန္ start ေပးထားလိုက္တာေပါ့ ..

# /etc/init.d/mysql start

Friday, December 14, 2012

Sql-Database Import to phpMyadmin fix error -> maximun limit && Script timeout passed, if you want to finish import, please resubmit same file and import will resume

ဒီတစ္ခါကေတာ့ ကၽြန္ေတာ္တို႔ phpMyadmin  မွာ database-Sqlကို import လုပ္တဲ့အခါ upload limit ကိုေက်ာ္သြားနိုင္ေလာက္တဲ့ MB အထိျဖစ္ေနလို႔ ခြင့္မျပဳနုိင္တဲ့ Error ေလးပါ . ကၽြန္ေတာ္တင္ခ်င္တာက 200MB ဗ်ာ .. ဒါေပမယ့္ သူ႔ Default သက္မွတ္ထားတာက 2MB ထဲဗ် .... အဲ့ဒါကို ျပင္ေပးနိုင္မွ အဆင္ေျပမွာပါ . ကဲျပင္ၾကည့္ရေအာင္ .. Apahce ရဲ႕ php.ini ဖိုင္က ဒီေနရာေလးေတြမွာ ျပင္မယ္ ..

upload_max_filesize=2M
post_max_size=2M
memory_limit=128M (လိုအပ္မွ ဒီလစ္မစ္ကိုေျပာင္းပါ ကၽြန္ေတာ္ကေတာ့ မေျပာင္းဘူး ( ^ _^ )

အခုလိုမ်ိဳးေျပာင္းေပးလိုက္မယ္ ..

upload_max_filesize=300M
post_max_size=300M
memory_limit=910M

ျပီးရင္ လုပ္ေနက်အတိုင္း
/etc/init.d/mysqld restart OR service mysqld restart
/etc/init.d/httpd restart OR service httpd restart ေပါ့ဗ်ာ ..

ေအာ္ ေနာ္ကတစ္ခုရွိေသးတယ္ဗ် .. ကၽြန္ေတာ္တို ခုလို import လုပ္္တဲ့အခါမွာ အခ်ိန္ဆိုတာပါေသးတယ္ဗ် .. သူက upload time limit လို႔ပဲေျပာရမလားမသိဘူး ..ခုလို 200MB ေလာက္ ထည့္တဲ့အခါက်ေတာ့ အခ်ိန္က အနည္းဆံုး ၈ မိနစ္ေလာက္သြားၾကာတယ္ဆိုေတာ့ လက္မခံေတာ့ဘူး ဆာဗာက . အဲဒီအခ်ိန္

Script timeout passed, if you want to finish import, please resubmit same file and import will resume

ဒီလို Error mesage ေလးေပးတတ္ပါတယ္ ..စိတ္မပူပါနဲ႔ အဲဒါလည္းရွင္းၾကည့္ၾကမယ္ ..ေအာက္မွာပါ ..
php.ini ထဲက ဒီအခ်ိန္ေလးကိုျပင္မယ္ ..
max_execution_time=6000

ျပီးေတာ့ phpMyAdmin ရဲ႕ config.default.php (phpMyAdmin\libraries\config.default.php) ထဲက ဒီအခ်ိန္ကန္႔သက္ခ်က္ကိုလည္းျပင္ေပးမယ္

$cfg['ExecTimeLimit'] = 300 -- ကို
$cfg['ExecTimeLimit'] = 0 (0 ဆိုတာကေတာ့ No Limit ) ကိုေျပာတာပါ

ေအာက္ကလိုေလးျဖစ္သြားမွာေပါ့

/**
 * maximum execution time in seconds (0 for no limit)
 *
 * @global integer $cfg['ExecTimeLimit']
 */
$cfg['ExecTimeLimit'] = 0;

ျပီးရင္ လုပ္ေနက်အတိုင္း

/etc/init.d/httpd restart OR service httpd restart
/etc/init.d/mysqld restart OR service mysqld restart ေပါ့ဗ်ာ ..
ဒီေနရာမွာ sql ကိုပါ restart  လုပ္ေပးရမယ္ေနာ္ .. သူ႔ကိုျပင္ထားတာဆိုေတာ့ .. အားလံုးအဆင္ေျပပါေစ

Sunday, August 26, 2012

MySql Master to Master Replication on CentOS


ဒါကေတာ့ sql replication ကို master to master လုပ္မွာျဖစ္ပါတယ္ . နမူနာအေနနဲ႔ ဆာဗာ ၁ နဲ႔ ၂ ဆိုျပီး စမ္းလုပ္ၾကည့္ရေအာင္

Master 1 IP Address : 172.168.0.1
Master 2 IP Address: 172.168.0.2
Database to replicate: db1, db2, and db3

ဒီနမူနာကို စမ္းမယ္သူအေနနဲ႔ လိုအပ္တဲ့ SQL ကိုသြင္းျပီးသားျဖစ္ေနေလာက္မွာပါ .. မရွိေသးရင္လည္းသြင္းလိုက္ျပီး ပါတ္စ္၀ါဒ့္တစ္ခါတည္းသက္မွတ္ေပးလိုက္ပါ ..

#yum install mysql mysql-server
#mysqladmin -u root password new_mysql_password

ေအာက္ကအဆင့္ေတြကေတာ့ ဆာဗာ ၂ ခုလံုးမွာ လုပ္မွာပါ .. ဆာဗာ ၁ ဆိုရင္ ဆာဗာ ၁ မွာ သံုးမယ့္ ကြန္မန္းလိုင္းေတြျဖစ္ျပီး ဆာဗာ ၂ ဆိုရင္ေတာ့  ၂ေအာက္မွာသံုးမွာပါ ..
ပထမဆံုးအေနနဲ႔ ဆာဗာ ၂ ခုလံုးရဲ႕ /var/log ေအာက္မွာ mysql ကိုတည္ေဆာက္ေပးျပီး owner ကိုလည္း mysql ဆိုျပီး ခ်ိန္းေပးထားလိုက္ပါ

#mkdir /var/log/mysql
#chown apache:apache /var/log/mysql

ွခု ဆာဗာ ၁ ကေနစရေအာင္
sql ထဲ၀င္မယ္ ျပီးရင္ေအာက္ကအတိုင္းဆက္သြားလိုက္မယ္ ကြန္မန္႔ေတြ ဖတ္ရင္ သံုးရင္းနားလည္လိမ့္မယ္ထင္လို႔ တစ္ခုခ်င္းမရွင္းေတာ့ပါဘူး .. လိုအပ္ရင္ေတာ့ ျပန္ေမးလို႔ရပါတယ္ .. ( ^_^ )..
#mysql -u root -p
Enter Password:
mysql> CREATE USER 'slave_user'@'172.168.0.2' IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'172.168.0.2' IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;

ဆာဗာ ၂ မွာလည္း အလားတူပဲသက္မွတ္ပါ့မယ္ ..

#mysql -u root -p
Enter Password:
mysql> CREATE USER 'slave_user'@'172.168.0.1' IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'172.168.0.1' IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;

ဒါဆိုရင္ မာစတာအတြက္ လိုအပ္တာေတြျပင္ျပီးပါျပိ ခု SLAVE အတြက္ လုပ္ပါ့မယ္ .. အဲဒါမတိုင္ခင္ sql config အရင္လုပ္ပါမယ္ . လုပ္မယ့္ ေနရာကေတာ့ /etc/my.cnf ဆိုတဲ့ configuration မွာပါ ..

ဆာဗာ ၁ ရဲ႕ /etc/my.cnf မွာေအာက္ကအတို္င္းထည့္ေပးမယ္.

server-id = 1
master-host =172.168.0.2
master-user = slave_user
master-password = password
master-connect-retry = 60
slave-net-timeout = 60
replicate-do-db = db1
replicate-do-db = db2
replicate-do-db = db3

log-bin = /var/log/mysql/mysql-bin.log
log-bin-index = /var/log/mysql/master-log-bin.index
binlog-do-db = db1
binlog-do-db = db2
binlog-do-db = db3

relay-log = /var/lib/mysqld-relay-bin
relay-log = /var/lib/mysql/slave-relay.log
relay-log-index = /var/lib/mysql/slave-relay-log.index

ဒီေအာက္ကေတာ့ ဆာဗာ ၂ ရဲ႕ /etc/my.cnf  အထဲမွာ ထည့္မွာပါ