commandes utiles - MySQL

utiles

sudo service mysql status
sudo service mysql start

CREATE DATABASE nomdb
    CHARACTER SET utf8mb4
    COLLATE utf8mb4_unicode_ci;

ps aux | grep mysql

sudo netstat -tap | grep mysql

mysqldump --all-databases --routines -u root -p > ~/fulldump.sql      (avec pw mysql) tail -n 50 /var/log/syslog

Mot de passe root

 Définir /usr/bin/mysqladmin -u root password 'new-password'

ou •shell> mysql -u root mysql
•mysql> use mysql ;
•mysql> UPDATE user SET Password=PASSWORD(’nouveau_mot_de_passe’) WHERE user=’root’ ;
•mysql> flush privileges ; ( ou encore redemarrer mysql)

Oubli du pw root mysql

sudo /etc/init.d/mysql stop
sudo mysqld --skip-grant-tables --skip-networking &
mysql mysql
  UPDATE user SET password=PASSWORD('new_pw') WHERE User="root" AND Host="localhost";
  \q
mysqladmin shutdown
sudo /etc/init.d/mysql start

Création base pour drupal (avec privilege du user)

mysql -u root -p

mysql> CREATE DATABASE IF NOT EXISTS nom-base CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
mysql> CREATE USER drupaluser IDENTIFIED BY 'motpasse';
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON nom-base.* TO 'drupaluser'@'localhost' IDENTIFIED BY 'motpasse';
mysql> FLUSH PRIVILEGES;
mysql> \q

Commandes de base via /usr/bin/mysql-admin    mysqladmin -u root -p create nom-base
(installer paquet mysql-gui-tools-common ?)

Tunning

key_buffer  = 64M
max_allowed_packet = 16M
thread_stack = 512K
thread_cache_size = 20
query_cache_limit  = 15M
query_cache_size = 46M
join_buffer_size = 5M

Importer

sudo mysql -h localhost -u nom-user -ppw-user nom-base < save.sql

un .sql trop gros ?  en cli, coupe toutes les 3000 lignes     split -l 3000 nombase.sql db-part-

Port et configuration

Les options globales sont à /etc/mysql/my.cnf alors que celles des users en ~/.my.cnf

connection entrantes

A /etc/mysql/my.cnf pour activer la connexion à MySQL via le port 3306, activez l’accès distant : soit en commentant (ajouter # en début de ligne) skip-networking ou bind-address = 127.0.0.1
le port est sous la section bloc [mysqld]

Puis créer un utilisateur mysql qui est autorisé à se connecter à distance depuis IPv4 : mysql -u root -p
grant all privileges on *.* to 'remote_user'@'IPv4' identified by 'user_password';

Si à la place de *.* on met % : autoriser l'accès venant de toutes machines (limité par l'authentification)

avec php

rechercher les lib dispo (ici pour php7): sudo apt-cache search php7-*

Installer

sudo apt install mysql-server

utf8 et utf8mb4

logué dans sql pour voir:  SHOW VARIABLES LIKE 'char%';

vers convertir les tables en utf8mb4

/etc/mysql/mysql.conf.d/mysqld.cnf :

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8

 


Plus sur le web

en fr https://doc.ubuntu-fr.org/mysql
https://www-fr.mysql.com/

http://www.rackspace.com/knowledge_center/article/installing-mysql-serve...

vidéos mySQL et MySQL Workbench (en francais, très basique) à https://www.youtube.com/playlist?list=PL5ni4iEf8Z6VFLA5Uy5vtn0NbST6YQcrL