Guest User

Untitled

a guest
Apr 9th, 2018
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.77 KB | None | 0 0
  1. alias my='mysql'
  2. alias mys='mysqlshow'
  3. alias mysu="mysql -e 'SELECT user, host FROM mysql.user'"
  4.  
  5. alias mycu='mysql-create-user'
  6. alias mycud='mysql-create-user-and-database'
  7.  
  8. alias mycd='mysql-create-database'
  9. alias mydd='mysql-drop-database'
  10. alias mytd='mysql-truncate-database'
  11.  
  12. alias myid='mysql-import-database'
  13. alias db-import='mysql-import-database'
  14. alias myed='mysql-export-database'
  15. alias db-export='mysql-export-database'
  16.  
  17.  
  18. mysql-password-hash() {
  19. PROGNAME=${0##*/}
  20.  
  21. if [[ $# -eq 0 ]]; then
  22. echo "Usage: $PROGNAME plain_password"
  23. return 1
  24. fi
  25.  
  26. mysql -e "SELECT PASSWORD('$1')" | grep '\*\w*'
  27. }
  28.  
  29. mysql-create-user() {
  30. PROGNAME=${0##*/}
  31.  
  32. if [[ $# -eq 0 ]]; then
  33. echo "Usage: $PROGNAME user_name [password]"
  34. return 1
  35. fi
  36.  
  37. USER=$1
  38. if [[ $(echo $USER | grep -c '@') -eq 0 ]]; then
  39. USER="$USER@localhost"
  40. fi
  41.  
  42. PASSWORD=$2
  43. if [[ -z $PASSWORD ]]; then
  44. echo -n "Enter user password: \n"; read -s PASSWORD
  45. fi
  46.  
  47. PASSWORD_HASH=$(mysql-password-hash $PASSWORD)
  48.  
  49. CREATE_USER_QUERY="CREATE USER \`${USER/@/\`@\`}\` IDENTIFIED BY PASSWORD '$PASSWORD_HASH'"
  50.  
  51. mysql -e $CREATE_USER_QUERY
  52. }
  53.  
  54. mysql-create-database() {
  55. PROGNAME=${0##*/}
  56.  
  57. if [[ $# -eq 0 ]]; then
  58. echo "Usage: $PROGNAME database_name [user_name]"
  59. return 1
  60. fi
  61.  
  62. DATABASE=$1
  63. USER=$2
  64. CHARACTER_SET=${CHARACTER_SET=utf8}
  65. COLLATION=${COLLATION=utf8_general_ci}
  66.  
  67. CREATE_DATABASE_QUERY="CREATE DATABASE \`$DATABASE\` CHARACTER SET $CHARACTER_SET COLLATE $COLLATION"
  68.  
  69. if [[ -n $USER ]]; then
  70. if [[ $(echo $USER | grep -c '@') -eq 0 ]]; then
  71. USER="$USER@localhost"
  72. fi
  73. CREATE_DATABASE_QUERY="$CREATE_DATABASE_QUERY; GRANT ALL PRIVILEGES ON \`$DATABASE\`.* TO \`${USER/@/\`@\`}\`"
  74. fi
  75.  
  76. mysql -e $CREATE_DATABASE_QUERY
  77. }
  78.  
  79. mysql-drop-database() {
  80. PROGNAME=${0##*/}
  81.  
  82. if [[ $# -eq 0 ]]; then
  83. echo "Usage: $PROGNAME database_name"
  84. return 1
  85. fi
  86.  
  87. mysql -e "DROP DATABASE IF EXISTS \`$1\`"
  88. }
  89.  
  90. mysql-create-user-and-database() {
  91. PROGNAME=${0##*/}
  92.  
  93. if [[ $# -eq 0 ]]; then
  94. echo "Usage: $PROGNAME user_name [password]"
  95. return 1
  96. fi
  97.  
  98. mysql-create-user $*
  99. mysql-create-database $1 $1
  100. }
  101.  
  102. mysql-truncate-database() {
  103. PROGNAME=${0##*/}
  104.  
  105. if [[ $# -eq 0 ]]; then
  106. echo "Usage: $PROGNAME database"
  107. return 1
  108. fi
  109.  
  110. for table in $(mysql -Nse 'SHOW TABLES' $1); do
  111. mysql -e "TRUNCATE TABLE \`$table\`" $1
  112. done
  113. }
  114.  
  115. mysql-import-database() {
  116. PROGNAME=${0##*/}
  117. if [[ $# -ne 2 ]]; then
  118. echo "Usage: $PROGNAME database dump-file.sql.gz"
  119. return 1
  120. fi
  121.  
  122. local DATABASE=$1
  123. local FILE=$2
  124.  
  125. if [ ! -f "$FILE" ] ; then
  126. echo "'$FILE' is not a valid file"
  127. return 1
  128. fi
  129.  
  130. mysql-drop-database $DATABASE
  131. mysql-create-database $DATABASE
  132.  
  133.  
  134. local TMP_FOLDER="$HOME/.tmp"
  135. local TMP_SQL="$TMP_FOLDER/import.sql"
  136.  
  137. if [ ! -d $TMP_FOLDER ]; then
  138. mkdir -p $TMP_FOLDER;
  139. fi
  140.  
  141. case $FILE in
  142. *.gz) gunzip -cf $FILE > $TMP_SQL ;;
  143. *.zip) unzip -p $FILE > $TMP_SQL ;;
  144. *) echo "'$FILE' cannot be extracted"; return 1 ;;
  145. esac
  146.  
  147. LC_ALL=C sed -i "" -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' $TMP_SQL
  148. LC_ALL=C sed -i "" -e 's/ROW_FORMAT=FIXED//g' $TMP_SQL
  149. mysql --force $DATABASE < $TMP_SQL
  150.  
  151. rm $TMP_SQL
  152. }
  153.  
  154. mysql-export-database() {
  155. PROGNAME=${0##*/}
  156.  
  157. if [[ $# -eq 0 ]]; then
  158. echo "Usage: $PROGNAME database [dump-file.sql.gz]"
  159. return 1
  160. fi
  161.  
  162. DATABASE=$1
  163. FILE=$2
  164.  
  165. if [[ -z $FILE ]]; then
  166. FILE="$DATABASE.sql.gz"
  167. fi
  168.  
  169. mysqldump $DATABASE | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' | sed -e 's/ROW_FORMAT=FIXED//g' | gzip > $FILE && echo "Exported: $FILE"
  170. }
Add Comment
Please, Sign In to add comment