Login sebagai root & jalankan arahan
Untuk user lain.
#CREATE USER 'nama-user'@'%' IDENTIFIED BY 'katalaluan';
#GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, LOCK TABLES ON nama-pengkalan-data.* TO nama-user@'%' IDENTIFIED BY 'katalaluan';
##GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, LOCK TABLES ON nama-pengkalan-data.* TO nama-user@'localhost' IDENTIFIED BY 'katalaluan';
Buat Backup Database setiap hari & buang selepas 7 hari.
#crontab -e
#@daily mysqldump -u admin -h localhost -pkatalaluanrapat namadatabase | gzip -9 > /data/backupdb/$(date +%Y-%m-%d-%H.%M.%S).sql.gz
#@weekly rm-rf /data/backupdb/*
Bagi TUNING mysql untuk meningkatkan prestasi, saya tambah baris seperti yang diterangkan di bawah,
------------------------------
log-bin=mysql-bin
server-id=1
max_binlog_size = 500000K
expire_logs_days = 7
default-character-set=latin1
port=3306
default-storage-engine=INNODB
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
max_connections=500
wait_timeout=30
connect_timeout=200
query_cache_size=32M
table_cache=256
tmp_table_size=9M
thread_cache_size=8
myisam_max_sort_file_size=1G
myisam_max_extra_sort_file_size=1G
myisam_sort_buffer_size=32M
key_buffer_size=11M
read_buffer_size=64K
read_rnd_buffer_size=256K
sort_buffer_size=1M
skip-name-resolve
innodb_additional_mem_pool_size=2M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=1M
innodb_buffer_pool_size=18M
innodb_thread_concurrency=2
innodb_file_per_table
lower_case_table_names=1
log_slow_queries=/var/log/mysqld-slow.log
================================================
SETTING PERFORMANCE LAIN
@@@@@@@@@@@@@@@
1-Edit / etc / my.cnf (tukar nombor menurut memori mesin)
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
##########################
### tuning by XXX
#
Sumber :-http://forums.cpanel.net/f354/how-move-mysql-data-directory-110481.html
# yum install mysql-server mysql
# up2date mysql-server mysql
Memulakan servis MySQL
# chkconfig mysqld on
# /etc/init.d/mysqld start
#chkconfig --levels 235 mysqld on
# /etc/init.d/mysqld start
#chkconfig --levels 235 mysqld on
===============================================
Tetapkan katalaluan root
# mysqladmin -u root password NEWPASSWORD
===kalau nak set password root kosong atau nak reset password.
http://stackoverflow.com/questions/2101694/mysql-how-to-set-root-password-to-null
===============================================================
===kalau nak set password root kosong atau nak reset password.
Anda boleh mendapatkan semula kata laluan pangkalan data MySQL server dengan berikut lima langkah mudah.
Langkah # 1: Berhenti proses pelayan MySQL.
Langkah # 2: Mulakan MySQL (mysqld) pelayan / proses daemon dengan pilihan --skip-geran-jadual supaya ia tidak akan meminta kata laluan.
Langkah # 3: Sambungkan ke pelayan mysql sebagai root.
Langkah # 4: Persediaan baru kata laluan akaun mysql root iaitu menetapkan semula kata laluan mysql.
Langkah # 5: Keluar dan mulakan semula pelayan MySQL.
Berikut adalah arahan anda perlu menaip bagi setiap langkah (login sebagai pengguna root):
Langkah # 1 : matikan servis mysql
# /etc/init.d/mysql stop
Output:
Stopping MySQL database server: mysqld.
Langkah# 2: Hidupkan server MySQL tanpa password:
# mysqld_safe --skip-grant-tables &
Output:
[1] 5988
Starting mysqld daemon with databases from /var/lib/mysql
mysqld_safe[6025]: started
Langkah # 3: Sambung ke server mysql guna mysql client:
# mysql -u root
Output:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 4.1.15-Debian_1-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
Langkah # 4: Set baru kata laluan MySQL root
mysql> use mysql;
mysql> update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
mysql> flush privileges;
mysql> quit
Langkah # 5: Matikan server MySQL:
# /etc/init.d/mysql stop
Output:
Stopping MySQL database server: mysqld
STOPPING server from pid file /var/run/mysqld/mysqld.pid
mysqld_safe[6186]: ended
[1]+ Done mysqld_safe --skip-grant-tables
Langkah # 6: Hidupkan server MySQL & test.
# /etc/init.d/mysql start
# mysql -u root -phttp://stackoverflow.com/questions/2101694/mysql-how-to-set-root-password-to-null
===============================================================
Cuba sambungan MySQL
# mysql -u root -p
Tetapan pada pelayan MySQL
# vim /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# ################
default-storage-engine=INNODB
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
max_connections=420
wait_timeout=600
connect_timeout=200
query_cache_size=32M
table_cache=256
tmp_table_size=9M
thread_cache_size=8
myisam_max_sort_file_size=1G
#myisam_max_extra_sort_file_size=1G
myisam_sort_buffer_size=32M
key_buffer_size=11M
read_buffer_size=64K
read_rnd_buffer_size=256K
sort_buffer_size=1M
skip-name-resolve
innodb_additional_mem_pool_size=2M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=1M
innodb_buffer_pool_size=3G
innodb_thread_concurrency=2
innodb_file_per_table
lower_case_table_names=1
slow_query_log=/var/log/mysqld-slow.log
################
bind-address = 172.20.1.#
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
==============================================================
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# ################
default-storage-engine=INNODB
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
max_connections=420
wait_timeout=600
connect_timeout=200
query_cache_size=32M
table_cache=256
tmp_table_size=9M
thread_cache_size=8
myisam_max_sort_file_size=1G
#myisam_max_extra_sort_file_size=1G
myisam_sort_buffer_size=32M
key_buffer_size=11M
read_buffer_size=64K
read_rnd_buffer_size=256K
sort_buffer_size=1M
skip-name-resolve
innodb_additional_mem_pool_size=2M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=1M
innodb_buffer_pool_size=3G
innodb_thread_concurrency=2
innodb_file_per_table
lower_case_table_names=1
slow_query_log=/var/log/mysqld-slow.log
################
bind-address = 172.20.1.#
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
Restart Servis
# /sbin/service mysqld restart
Periksa Mysql servis
#netstat -nap | grep mysql
Cipta pengguna baru dan Grant Permissions pada MySQL
Masuk mysql :- klu x ada password buang -p
$ mysql -u root -p
>CREATE USER 'admin'@'localhost' IDENTIFIED BY 'password';
>GRANT ALL PRIVILEGES ON * . * TO 'admin'@'localhost';
>FLUSH PRIVILEGES;
>quit;
Bagaimana untuk membolehkan akses dari jauh MySQL server
mengakses pelayan MySQL tempatan daripada mana-mana hos luar
vi /etc/mysql/my.conf
#bind-address = <Alamat_IP__Awan_Pelayan_Anda>
bind-address = 192.168.X.X
#/etc/init.d/mysql restart
Login masuk Mysql
#mysql -u root -p
mysql> GRANT ALL PRIVILEGES ON *.* TO admin@’%’ IDENTIFIED BY “admin_password”;
Buat pengkalan data baru.
mysql> CREATE DATABASE ermegeldo;
mysql> GRANT ALL PRIVILEGES ON ermegeldo.* TO admin@’0.0.0.0′ IDENTIFIED BY ‘admin_password’;
mysql>FLUSH PRIVILEGES;
mysql>FLUSH PRIVILEGES;
Untuk user lain.
#CREATE USER 'nama-user'@'%' IDENTIFIED BY 'katalaluan';
#GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, LOCK TABLES ON nama-pengkalan-data.* TO nama-user@'%' IDENTIFIED BY 'katalaluan';
##GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, LOCK TABLES ON nama-pengkalan-data.* TO nama-user@'localhost' IDENTIFIED BY 'katalaluan';
Jugan lupa disable Firewall.
#Disable selinux dan /etc/init.d/iptables stop
Cuba Akses dari pc lain
#
#Disable selinux dan /etc/init.d/iptables stop
Cuba Akses dari pc lain
#
Login guna admin yang telah dibuat tadi dari sofware SQLyog community cthnya, kemudian anda backup & restore data & struktur baru pengkalan data kedalam MySQL baru.
Buat Backup Database setiap hari & buang selepas 7 hari.
#crontab -e
#@daily mysqldump -u admin -h localhost -pkatalaluanrapat namadatabase | gzip -9 > /data/backupdb/$(date +%Y-%m-%d-%H.%M.%S).sql.gz
#@weekly rm-rf /data/backupdb/*
Bagi TUNING mysql untuk meningkatkan prestasi, saya tambah baris seperti yang diterangkan di bawah,
------------------------------
log-bin=mysql-bin
server-id=1
max_binlog_size = 500000K
expire_logs_days = 7
default-character-set=latin1
port=3306
default-storage-engine=INNODB
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
max_connections=500
wait_timeout=30
connect_timeout=200
query_cache_size=32M
table_cache=256
tmp_table_size=9M
thread_cache_size=8
myisam_max_sort_file_size=1G
myisam_max_extra_sort_file_size=1G
myisam_sort_buffer_size=32M
key_buffer_size=11M
read_buffer_size=64K
read_rnd_buffer_size=256K
sort_buffer_size=1M
skip-name-resolve
innodb_additional_mem_pool_size=2M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=1M
innodb_buffer_pool_size=18M
innodb_thread_concurrency=2
innodb_file_per_table
lower_case_table_names=1
log_slow_queries=/var/log/mysqld-slow.log
================================================
SETTING PERFORMANCE LAIN
@@@@@@@@@@@@@@@
1-Edit / etc / my.cnf (tukar nombor menurut memori mesin)
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
##########################
### tuning by XXX
#
default_storage_engine=InnoDB
innodb_additional_mem_pool_size=2097152
innodb_buffer_pool_size=3G #{TotalMemoryInBytes*3/4}
innodb_file_per_table=1
innodb_flush_method=O_DIRECT
innodb_log_file_size=256M # Sebelum setting ini sila rename semua ib* kt /var/lib/mysql/
#innodb_buffer_pool_size=8G #
key_buffer_size=16777216
max_binlog_size=134217728
read_buffer_size=262144
read_rnd_buffer_size=524288
slow_query_log=/var/log/mysql.slow.log #Tukar dari log_slow_queries=/var/log/mysql.slow.log
###skip-bdb
query_cache_size=128M
table_cache=256
max_connections=215 #{TotalMemoryInBytes/20000000} or max 500
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
2- Restart mysqld
Jika DB telah pun digunakan sebelum penalaan:
1. Pastikan semua jadual yang digunakan pengaturcara menggunakan INNODB (bukan MyISAM atau lain2). Jika tidak mendapatkan pengaturcara untuk menukar jadual kepada INNODB. Pengaturcara / DBA boleh menggunakan arahan ini untuk menukar jadual:
ALTER TABLE t1 ENGINE=InnoDB;
2. Backup the tables
# mysqldump --all-databases > dump.sql
# mysqldump --all-databases > dump.sql
3. Stop mysqld
4. rm -f /var/lib/mysql/ibdata*
rm -f /var/lib/mysql/ib_logfile*
rm -f /var/lib/mysql/ib_logfile*
5. Start mysqld
6. Restore the dump file
# mysql < dump.sql
# mysql < dump.sql
7. rm dump.sql
Pindah Data Mysql pada partision baru.
Anggap partision pada /dev/sdc1
Pindah Data Mysql pada partision baru.
Anggap partision pada /dev/sdc1
- Backup semua MySQL databaseCode:
mysqldump --opt --all-databases | gzip > /home/alldatabases.sql.gz
- Stop mysqlCode:
/etc/init.d/mysqld stop
- Backup data MySQL, bimbang masalah.Code:
mv /var/lib/mysql /var/lib/mysql.backup
- Create the new mount pointCode:
mkdir /var/lib/mysql
- Edit /etc/fstab supaya mounted bila server boots.Code:
echo "/dev/sdc1 /var/lib/mysql ext3 defaults,usrquota 0 1" >> /etc/fstab
- Mount partition baru. command mount semuanya dalam /etc/fstab:Code:
mount -a
- Tukar ownership mount point untuk user "mysql" akses.Code:
chown mysql:mysql /var/lib/mysql
- Ensure that the permissions of the mount point are correctCode:
chmod 711 /var/lib/mysql
- Start mysqlCode:
/etc/init.d/mysql start
- Pastikan MySQL data directory dah mount:Code:
mount |grep /var/lib/mysql
- Anda akan lihat baris seperti ini:
/dev/sdc1 on /var/lib/mysql type ext3 (rw,usrquota)
Sumber :-http://forums.cpanel.net/f354/how-move-mysql-data-directory-110481.html