วิธีติดตั้ง MariaDB (Database) และ iptables บน CentsOS7

15/12/2015 9:30 PM คอมพิวเตอร์ 512 views

หลังจากติดตั้ง Apache tomcat เรียบร้อยถ้าต้องการทำเว็บไซต์ที่มีระบบฐานข้อมูลด้วยก็จำเป็นต้องติดตั้งเพิ่มเติม
ตัวที่ผมใช้อยู่เป็น Database ของ MariaDB ครับ

Step 1 :  ติดตั้ง MariaDB

# sudo yum install mariadb-server mariadb

Step 2 :  หลังจากติดตั้งเสร็จก็ start ให้ MariaDB ทำงาน

# sudo systemctl start mariadb.service  // สั่งให้ mariadb ทำงาน
# sudo systemctl stop mariadb.service // สั่งให้ mariadb หยุดทำงาน
# sudo systemctl restart mariadb.service // สั่งให้ mariadb ทำงานใหม่

คำสั่งอื่นๆ
# sudo systemctl is-active mariadb.service // เช็คสถานะว่า mariadb ทำงานอยู่หรือไม่
หรือ systemctl status mariadb

# sudo systemctl enable mariadb.service // คำสั่งให้ mariadb ทำงาน

Step 3 :  กำหนดรหัสผ่านให้กับ MariaDB โดยใช้คำสั่ง

# sudo /usr/bin/mysql_secure_installation

จะแสดงข้อความ  Enter current password for root (enter for none): (ถ้าไม่มีก็ Enter ไป)
Set root password? [Y/n] พิมพ์ Y   จากนั้นจะให้กำหนดรหัสผ่านใหม่

New password: ใส่รหัสผ่านใหม่
Re-enter new password:ใส่รหัสผ่านใหม่ซ้ำอีกครั้ง

ระบบจะแสดงคำสั่งต่างๆ ให้ตอบก็เลือกตอบ Y ทั้งหมด เช่น
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

เมื่อดำเนินการเสร็จสิ้นจะแสดงข้อความว่า
installation should now be secure.
Thanks for using MariaDB!

สามารถเข้าใช้งานได้เลยครับ
# mysql -u root -p
# "YOUR PASSWORD"

ตั้งค่า MariaDB ให้สามารถ Remote access ได้

กรณีที่มี iptables และต้องการให้ MySQL เชื่อมต่อกับเครื่องอื่นได้จะเป็นต้องเปิด port ด้วย
เพิ่มคำสั่งนี้ไปใน iptables โดยปกติแล้วจะใช้ port 3306 สามารถดูวิธีการติดตั้ง iptables ได้ด้านล่าง

-I INPUT -p tcp –dport 3306 -m state –state NEW,ESTABLISHED -j ACCEPT
-I OUTPUT -p tcp –sport 3306 -m state –state ESTABLISHED -j ACCEPT

 

วิธีการติดตั้ง iptables และคำสั่งที่จำเป็น

– คำสั่งปิดการทำงาน Firewall และสั่งให้ Firewall หยุดทำงาน
# Disable Firewalld Service.
# systemctl stop firewalld

– คำสั่งติดตั้ง iptable และสั่งให้ iptable เริ่มทำงาน

# yum -y install iptables-services
# systemctl enable iptables
# systemctl enable ip6tables

– คำสั่งให้ iptable เริ่มทำงาน
# systemctl start iptables

# systemctl start ip6tables

– คำสั่งเช็คสถานะการทำงานของ iptable
# systemctl status iptables

“ตำแหน่งที่อยู่ของไฟล์ iptable ->   /etc/sysconfig/iptable”

 

 

หากติดปัญหาไม่สามาถกำหนดรหัสผ่านใหม่ได้

กรณีที่ติดปัญหาไม่สามารถติดตั้งใน Step 3 ได้อาจเนื่องจากได้มีการติดตั้งไปก่อนแล้ว
แต่ลืมรหัสผ่านของ MariaDB ทำให้ไม่สามารถตั้งรหัสใหม่ได้จำเป็นต้องรีเชตรหัสก่อน
โดยทำตามคำสั่งต่อไปนี้

Stop MySQL ก่อน
# sudo /etc/init.d/mysqld stop

เข้าใช้งาน MySQL แบบ Safe Mode
# sudo mysqld_safe –skip-grant-tables &

Login เข้าใช้งาน MySQL โดยคำสั่งและเลือก database ที่ต้องการ
# mysql -u root
# use YOUR_DATABASE;

จากนั้น กำหนดรหัสผ่านใหม่ให้กับ root
# update user set password=PASSWORD(“newpassword”) where User=’root’;
# flush privileges;
# quit

เสร็จแล้วก็ Stop และ Start ใหม่อีกครั้งแล้วทดสอบเข้างานงาน
# sudo /etc/init.d/mysqld stop

# sudo /etc/init.d/mysqld start
# mysql -u root -p

 

คำสั่งต่างๆ เกี่ยวการจัดการฐานข้อมูล

– คำสั่ง Show User
(หากไม่ต้องการแสดงค่าตัวไหนก็สามารถตัดออกได้)
# select host, user, password from mysql.user;

– คำสั่ง Create User
# CREATE USER ‘ชื่อ user’@’ชื่อhost’ IDENTIFIED BY ‘รหัสผ่าน’; เช่น

#  CREATE USER ‘root’@’localhost’ IDENTIFIED BY ‘12345’;
# FLUSH Privileges;

– คำสั่งกำหนดสิทธิ์การเข้าถึงฐานข้อมูล
# GRANT [permission] ON [database].[table] TO ‘ชื่อ user’@’ชื่อhost’; เช่น

# GRANT ALL ON *.* TO ‘rootp’@’localhost’;  เป็นการให้สิทธิ์ทุกอย่างกับ rootp
# FLUSH Privileges;

– คำสั่งยกเลิกสิทธิ์การเข้าถึงฐานข้อมูล
# REVOKE [permission] ON [database].[table] TO ‘ชื่อ user’@’ชื่อhost’; เช่น

# REVOKE ALL ON *.* TO ‘rootp’@’localhost’;  เป็นการยกเลิกสิทธิ์ทุกอย่างกับ rootp
# FLUSH Privileges;

– คำสั่งลบผู้ใช้งาน
# DROP USER ‘root’@’localhost’;
# FLUSH Privileges;

– คำสั่ง Back up หรือ Export ฐานข้อมูล
เลือกโฟลเดอร์ที่หาไฟล์ง่ายๆ เช่นของผมกำหนดเป็น
# cd /opt
# mysqldump -u root -p  ชื่อฐานข้อมูล > ชื่อที่ต้องการ.sql เช่น

# cd /opt
# mysqldump -u root -p  psouou > psouou.sql

ก็จะได้ไฟล์ psouou.sql ที่อยู่ในโฟเดอร์ opt จากนั้นสามารถนำไป import ต่อได้เลย

– คำสั่ง Import ฐานข้อมูล
ให้อัพโหลดไฟล์ที่ Export ตามขั้นตอนด้านบนผ่าน FTP ไปไว้ในตำแหน่งที่หาง่ายเช่นของผมเป็น opt
และต้องสร้างชื่อฐานข้อมูลใหม่ให้เรียบร้อยก่อนแล้วใช้คำสั่ง

# cd /opt
# mysqldump -u root -p  psouou < psouou.sql