Nuffnang

Memaparkan catatan dengan label MySQL. Papar semua catatan
Memaparkan catatan dengan label MySQL. Papar semua catatan

Tukar Port Mysql dengan SELINUX


Aku tau, SELINUX menyusahkan. so aku ada command yang membolehkan jika anda ubah port=3306 kepada port=8710 tanpa menyebabkan mysql gagal berfungsi (bila anda restart server).


/usr/sbin/semanage port -a -t mysqld_port_t -p tcp 1234



make sure semanage dah install. Kalau belum install, sila refer blog writeup aku sebelum ini. (Sila lihat dalam Label "MySQL"). Tapi jangan lupa untuk bukak my.cnf anda dan tukar port tu yer sebelum restart mysql. Kalau korang tak pandai restart mysql, korang boleh restart server. 

Reconfigure Mysql Server Data File with SELINUX in mind!

This problem occur when we try to change datadir from default setting to other directory in my.cnf file. This is because SELINUX prevent root user to change even we (root user) can change iy in my.cnf file.


Step 1 – Configure your mysql server

bash#>service mysqld stop
bash#>mkdir /DATA/mysql/
bash#>chown mysql:mysql /DATA/mysql
bash#>mv /var/lib/mysql/* /DATA/mysql/
bash#>vi /etc/my.cnf

Change
datadir=/var/lib/mysql à datadir=/DATA/mysql
socket=/var/lib/mysql/mysql.sock à socket=/DATA/mysql/mysql.sock

Step 2 – Configure your SELINUX to accept your configuration. Usually SELINUX is active by default installation.

Step2a-Test [semanage] program available.

bash#>semanage

If the command return “Command not found”. You have to install “semanage” first. Please go to Step2b. If not,please proceed with Step 2c

Step2b – Install “semanage”

bash#>yum whatprovides /usr/sbin/semanage

Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
 * base: centos.maulvi.net
 * extras: centos.maulvi.net
 * updates: centos.maulvi.net
policycoreutils-python-2.0.83-19.18.el6.x86_64 : SELinux policy core python utilities
Repo        : base
Matched from:
Filename    : /usr/sbin/semanage

bash#>yum -y install policycoreutils-python

Repeat Step2a

Step2c – Configure SELINUX to accept your settings

bash#>getenforce
bash#>semanage fcontext -a -t mysqld_db_t "/DATA/mysql(/.*)?"
bash#>restorecon -Rv /srv/mysql

Step3 – configure your client to refer to different mysql socket

As default, Mysql Client point to /var/lib/mysql/mysql.sock. Change or Add this by editing /etc/my.cnf (using your vi editor)

bash#>vi /etc/my.cnf

[client]
socket = /DATA/mysql/mysql.sock

Step4 – Start your server

bash#>service mysqld start

Step5 – Configure your php webserver (if your webserver same machine and same OS with database server only)

Edit /etc/php.ini

bash#>vi /etc/php.ini

Change mysql.default_socket = /var/lib/mysql/mysql.sock à mysql.default_socket = /DATA/mysql/mysql.sock.

Don’t forget to restart your web server

Like Facebook