User Tools

Site Tools


сервис_mysql

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
сервис_mysql [2017/07/18 08:03]
val [Смена пароля пользователя root]
сервис_mysql [2020/10/06 14:55]
val [Из командной строки]
Line 6: Line 6:
  
   * на все вопросы о пароле пользователя root нажимаем "​Enter"​   * на все вопросы о пароле пользователя root нажимаем "​Enter"​
 +  * ставится 3-4 минуты
  
 <​code>​ <​code>​
-root@server:~# apt install mysql-server+debian10# apt install default-mysql-server 
 + 
 +server# apt install mysql-server
 </​code>​ </​code>​
  
 ==== FreeBSD ==== ==== FreeBSD ====
 <​code>​ <​code>​
-freebsd10# pkg install mysql56-server+freebsd11# pkg install mysql56-server
  
-[server:~] # service mysql-server rcvar+[server:~] # sysrc mysql_enable=yes
  
 [server:~] # service mysql-server start [server:~] # service mysql-server start
Line 34: Line 37:
  
 <​code>​ <​code>​
-# cat /etc/mysql/mariadb.conf.d/50-server.cnf+# cat /​etc/​mysql/​conf.d/​utf8.cnf
 </​code><​code>​ </​code><​code>​
-... 
 [mysqld] [mysqld]
-... +collation_server=utf8_general_ci 
-init-connect="SET NAMES utf8"+character_set_server=utf8 
 +init_connect='​SET collation_connection = utf8_general_ci'​ 
 +init_connect='SET NAMES utf8'
 skip-character-set-client-handshake skip-character-set-client-handshake
-...+</​code>​ 
 + 
 +===== Управление параметрами сервера ===== 
 + 
 +<​code>​ 
 +# cat /​etc/​mysql/​conf.d/​my-custom-settings.cnf 
 +</​code><​code>​ 
 +[mysqld] 
 +sql_mode=""​ 
 +innodb_strict_mode=OFF 
 +</​code><​code>​ 
 +# service mysql restart
 </​code>​ </​code>​
  
Line 74: Line 89:
 ==== Из командной строки ==== ==== Из командной строки ====
 <​code>​ <​code>​
-# mysql billing -u billing --password=XXX -B --skip-column-names -e "​select login, pass from accounts where uid=YYY"​+# mysql billing -u billing --password=XXX -B --skip-column-names -e "​select login, pass from accounts where uid=YYY" ​| tr '​\t'​ ';'​
 </​code>​ </​code>​
 ===== Управление базами данных и пользователями ===== ===== Управление базами данных и пользователями =====
Line 126: Line 141:
 </​code>​ </​code>​
  
 +===== Отладка =====
 +
 +==== Протоколирование всех запросов ====
 +<​code>​
 +# cat /​etc/​mysql/​mariadb.conf.d/​50-server.cnf
 +</​code><​code>​
 +...
 +[mysqld]
 +...
 +general-log
 +general-log-file=/​var/​log/​mysql/​q.log
 +log-output=file
 +...
 +</​code>​
 +
 +===== adminer =====
 +
 +  * [[https://​www.adminer.org/​]]
 +
 +<​code>​
 +# apt install adminer
 +
 +# cat /​etc/​apache2/​sites-available/​000-default.conf
 +</​code><​code>​
 +...
 +        Alias /adminer /​usr/​share/​adminer/​adminer/​
 +...
 +</​code>​
 +
 +===== phpmyadmin =====
 +
 +  * Выбрать apache2, все остальное по умолчанию
 +
 +<​code>​
 +# apt install phpmyadmin
 +
 +# ls -l /​etc/​apache2/​conf-available/​phpmyadmin.conf
 +
 +# less /​etc/​phpmyadmin/​apache.conf
 +</​code><​code>​
 +http://​server.corpX.un/​phpmyadmin
 +</​code>​
 ===== Управление сбоями ===== ===== Управление сбоями =====
  
-  * Можно в консоли сервера запустить mysqlcheck -r, он автоматически починит проблемные таблицы во всех базах. 
   * [[http://​dev.mysql.com/​doc/​refman/​5.1/​en/​show-processlist.html|SHOW PROCESSLIST Syntax]]   * [[http://​dev.mysql.com/​doc/​refman/​5.1/​en/​show-processlist.html|SHOW PROCESSLIST Syntax]]
 +
 +<​code>​
 +1. Настраиваем mysql на работу в режиме чтения
 +
 +# nano /etc/my.cnf
 +...
 +innodb_force_recovery=4
 +...
 +
 +2. Запускаем из командной строки
 +
 +/​usr/​libexec/​mysqld --skip-grant &
 +
 +3. Бекапим все базы данных
 +
 +mysqldump --all-databases --add-drop-table > dumpfile.sql
 +
 +4. Останавливаем сервер
 +
 +killall mysqld
 +
 +5. Убираем настройку работы в режиме чтения
 +
 +nano /etc/my.cnf
 +...
 +#​innodb_force_recovery=4
 +...
 +
 +6. Удаляем/​перемещаем каталог со старыми базами данных
 +
 +mv /​var/​lib/​mysql /​var/​lib/​mysql_
 +
 +7. Создаем новый каталог для баз данных с нужными правами
 +
 +mkdir /​var/​lib/​mysql/​
 +chown mysql:mysql /​var/​lib/​mysql/​
 +
 +8. Создаем системные базы данных в новом каталоге
 +
 +/​usr/​libexec/​mysqld --initialize --user=mysql
 +
 +9. Запускаем сервис
 +
 +/​etc/​init.d/​mysqld start
 +10. Восстанавливаем остальные базы данных из бекапа
 +
 +mysql < dumpfile.sql
 +</​code>​
сервис_mysql.txt · Last modified: 2021/10/12 10:28 by val