## - ---------------------------------------------------------------- ## - 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 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 WHERE TABLE_TYPE LIKE 'VIEW' ## - ---------------------------------------------------------------- ## - Zeige Definition eines Views ## - ---------------------------------------------------------------- show CREATE VIEW ; ## - ---------------------------------------------------------------- ## - 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= db_user= db_pass= 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%";