MySQL

De OpenWikiBSD
Aller à : navigation, rechercher

Installation

Sous OpenBSD

pkg_add mariadb-server
/usr/local/bin/mysql_install_db
rcctl restart mysqld
/usr/local/bin/mysql_secure_installation

Mot de passe root vide, puis Yes à tout.

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


Pour Nginx idem :


mkdir -p /var/www/var/run/mysql
ln -f /var/run/mysql/mysql.sock /var/www/var/run/mysql/mysql.sock

Pour le benêt qui perd son pass root..

/usr/local/bin/mysqld_safe --skip-grant-tables &

SUpprimer un user

DELETE FROM mysql.user WHERE user='username' and host='hostname';
flush privileges;

Droits

Un petit

flush privileges;

peut être souvent utile..

[1]

Comment recréer une structure de table dont on connait juste un résultat.

show create table MA_TABLE;

Fichiers de logs

Dans /etc/my.cnf, partie mysqld

log = /var/log/mysqld.log


touch /var/log/mysql.log
chown _mysql._mysql /var/log/mysql.log