mysql/DOC/mysql.txt
2017-02-19 12:27:15 +01:00

131 lines
4.2 KiB
Plaintext

## - ----------------------------------------------------------------
## - MySql Superuser anlegen
## - ----------------------------------------------------------------
## - Bemerkung:
## - Das Passwort wird verschlüsselt abgespeichert
## - Von Überall:
## -
GRANT ALL PRIVILEGES ON *.* TO 'admin' IDENTIFIED BY 'Nyz!aB2u' WITH GRANT OPTION ;
FLUSH PRIVILEGES;
## - Nur von loacalhost
## -
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'Nyz!aB2u' WITH GRANT OPTION ;
FLUSH PRIVILEGES;
## - ----------------------------------------------------------------
## - Dantenbank anlegen, User anlegen mit vollen Rechten auf der Datenbank
## - ----------------------------------------------------------------
CREATE DATABASE <new_db_name> CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL ON new_db.* TO 'new_user'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
## - Dantenbank anlegen, User mit eingeschrenkten Rechten auf der Datenbank
## -
## - Beispiel: vpopmail
## -
CREATE DATABASE vpopmail;
GRANT select,insert,update,delete,create,drop ON vpopmail.* TO 'vpop'@'localhost' IDENTIFIED BY 'r23myzmx';
FLUSH PRIVILEGES;
## - ----------------------------------------------------------------
## - Zeige alle Views einer Datenbank
## - ----------------------------------------------------------------
SHOW FULL TABLES IN <db_name> WHERE TABLE_TYPE LIKE 'VIEW'
## - ----------------------------------------------------------------
## - Zeige Definition eines Views
## - ----------------------------------------------------------------
show CREATE VIEW <view_name>;
## - ----------------------------------------------------------------
## - Datenbank User und deren Rechte auslesen
## - ----------------------------------------------------------------
mysql -uroot -pbuz111 mysql --skip-column-name -A -e"SELECT CONCAT('SHOW GRANTS FOR ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>'';" | mysql -uroot -pbuz111 mysql --skip-column-name -A | sed 's/$/;/g' > ~/mysql-grants.sql
## - ----------------------------------------------------------------
## - Convert databese from current latin1 to utf8
## - ----------------------------------------------------------------
db_name=<database-name>
db_user=<database-user>
db_pass=<database-password>
old_charset=latin1
#old_collate=latin1_swedish_ci - NOT NEEDED
new_charset=utf8
new_collate=utf8_unicode_ci
## - 1.) dump the databse as follows:
dumpfile=${db_name}-${old_charset}.`date +%Y%m%d-%H%M`.sql
mysqldump -u$db_user -p$db_pass --set-charset --skip-set-charset --add-drop-table $db_name > $dumpfile
## - 2.) change character settings on mysql monitor
query="ALTER DATABASE \`$db_name\` DEFAULT CHARACTER SET $new_charset DEFAULT COLLATE $new_collate;"
mysql -u$db_user -p$db_pass $db_name -e "$query"
## - 3.) Load he dumpfile
mysql -u$db_user -p$db_pass --default-character-set=$old_charset $db_name < $dumpfile
## - 4.) show result
mysql -u$db_user -p$db_pass $db_name -e "SHOW CREATE DATABASE $db_name\G"
--------------------------------------------------------------------------------------------------
## - dump database WITHOUT CREATE TABLE Statements - useful, if you
## - want add entries into existing tables of an existing database,
## - i.e. database "mysql"
## -
mysqldump -uroot -p --add-locks --disable-keys --extended-insert \
--lock-tables --quick --set-charset --no-create-info mysql > db_mysql.sql
## - durmp table "user" from database mysql without CREATE TABLE statment
## -
mysqldump -uroot -pbuz111 --add-locks --disable-keys --extended-insert --lock-tables --quick --set-charset --no-create-info mysql user | sed 's#),(#);\n(#g' | sed 's#^(#INSERT INTO `user` VALUES (#' > mysql-user.sql
## - restore
mysql -uroot -pbuz111 -f mysql < mysql-user.sql
--------------------------------------------------------------------------------------------------
## charset für den MySQL monitor einstellen
##
mysql> SET CHARACTER SET UTF8;
## bzw.
mysql> \C utf8
## zeige Server-Konfiguration
##
mysql> SHOW VARIABLES;
mysql> SHOW /*!50000 global */ VARIABLES ;
mysql> SHOW /*!50000 global */ VARIABLES LIKE "%slow%";
## - Zeige Sever Status
## -
mysql> SHOW STATUS ;
mysql> SHOW /*!50000 global */ STATUS ;
mysql> SHOW /*!50000 global */ STATUS LIKE "slow%";