MySQL

De OpenWikiBSD.

Sommaire

Installation

Sous OpenBSD

pkg_add mysql-server
cp /usr/local/share/mysql/my-huge.cnf  /etc/my.cnf 
echo "sysctl -w kern.maxfiles=4096 " >> /etc/rc.local
<s>echo "/usr/local/libexec/mysqld --basedir=/usr/local --datadir=/var/mysql --user=_mysql --socket=/var/www/run/mysql/mysql.sock  &" >> /etc/rc.local</s>
mkdir -p /var/run/mysql
mkdir -p /var/mysql
mkdir -p /var/www/var/run/mysql
chown _mysql._mysql /var/www/var/run/mysql/
perl -pi -e 's/\/var\/run\/mysql\/mysql\.sock/\/var\/www\/var\/run\/mysql\/mysql\.sock/g' /etc/my.cnf
/usr/local/libexec/mysqld --basedir=/usr/local --datadir=/var/mysql --user=_mysql --socket=/var/www/var/run/mysql/mysql.sock  &
ln -s /var/www/var/run/mysql/mysql.sock /var/run/mysql/mysql.sock
/usr/local/bin/mysql_install_db

Puis on lance le script de sécurisation (Je passe les détails)

/usr/local/bin/mysql_secure_installation

Enter current password for root (enter for none):  {Le mdp est vide pour le moment}
OK, successfully used password, moving on...

Set root password? [Y/n] 
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
Remove anonymous users? [Y/n] 
Disallow root login remotely? [Y/n] 
Remove test database and access to it? [Y/n] 
 - Dropping test database...
 - Removing privileges on test database...
Reload privilege tables now? [Y/n] 


Nouveau sous OpenBSD 4.9 : Mysql se lance désormais par /etc/rc.d/mysqld start

echo "/etc/rc.d/mysqld start" >> /etc/rc.local

Sous FreeBSD

cd /usr/ports/databases/mysql55-server
make config install clean

echo 'mysql_enable="YES"' >> /etc/rc.conf

/usr/local/etc/rc.d/mysql-server start

Configuration

Si vous voulez une connexion simple depuis localhost, créez le fichier qui va bien.

 touch /user/.my.cnf

 echo "[client]
password=le password
user=root
" > /user/.my.cnf

chmod 600 /user/.my.cnf
chown root.wheel /user/.my.cnf

Puis un simple mysql suffit.

mysql --socket=/var/www/var/run/mysql/mysql.sock

Sécurisation des comptes

sauf qu'à ce point, vous aurez une belle installation toute trouée !

mysql -e "drop database test"
SET PASSWORD FOR 'root'@'FQDN' = PASSWORD('newpwd');
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpwd');
SET PASSWORD FOR 'root'@'::1' = PASSWORD('newpwd');
SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD('newpwd');
SET PASSWORD FOR @'FQDN' = PASSWORD('newpwd');
SET PASSWORD FOR @'localhost' = PASSWORD('newpwd');

Création de comptes

CREATE USER 'USER'@'@IP' IDENTIFIED BY 'PASSWORD';

Installation et configuration de Bdds

mysql> create database MABDD;
Query OK, 1 row affected (0.02 sec)
mysql>   GRANT ALL PRIVILEGES ON MABDD.* TO 'MONUSER'@'localhost' IDENTIFIED BY 'MDP';
Query OK, 0 rows affected (0.00 sec)


PHP & MySQL chrooté

Sous OpenBSD, Apache est chrooté.

  • Pour les applis OAMP, il faut modifier php.ini
perl -pi -e 's/mysql.default_socket =/mysql.default_socket = \/run\/mysql\/mysql.sock/' /var/www/conf/php.ini
apachectl stop
apachectl startssl
Outils personnels