Mysql: различия между версиями

Материал из Wiki МИАЦ ВО
Перейти к навигации Перейти к поиску
(Как запустить в bash скрипте команды mysql и mysqldump без ввода пароля)
(После установки, невозможно зайти удаленно пользователем root)
Строка 3: Строка 3:
 
Добавляем пользователя mnk с паролем passwd:
 
Добавляем пользователя mnk с паролем passwd:
 
#Локально в консоли входим в mysql с правами root<pre>$mysql -uroot -p</pre>
 
#Локально в консоли входим в mysql с правами root<pre>$mysql -uroot -p</pre>
#Добавляем там нового пользователя (можно не root)<pre>mysql>CREATE USER 'mnk'@'%' IDENTIFIED BY 'passwd';
+
#Добавляем там нового пользователя (можно не root)<pre>mysql>CREATE USER 'mnk'@'%' IDENTIFIED BY 'passwd';</pre>
mysql>GRANT EXECUTE, PROCESS, SELECT, SHOW DATABASES, SHOW VIEW, ALTER, ALTER ROUTINE, CREATE, CREATE ROUTINE, CREATE TABLESPACE,  
+
#Даем ему все права:<pre>mysql>GRANT EXECUTE, PROCESS, SELECT, SHOW DATABASES, SHOW VIEW, ALTER, ALTER ROUTINE, CREATE, CREATE ROUTINE, CREATE TABLESPACE, CREATE TEMPORARY TABLES, CREATE VIEW, DELETE, DROP, EVENT, INDEX, INSERT, REFERENCES, TRIGGER, UPDATE, CREATE USER, FILE, LOCK TABLES, RELOAD, REPLICATION CLIENT, REPLICATION SLAVE, SHUTDOWN, SUPER  ON *.* TO 'mnk'@'%' WITH GRANT OPTION;
CREATE TEMPORARY TABLES, CREATE VIEW, DELETE, DROP, EVENT, INDEX, INSERT, REFERENCES, TRIGGER, UPDATE, CREATE USER, FILE,  
 
LOCK TABLES, RELOAD, REPLICATION CLIENT, REPLICATION SLAVE, SHUTDOWN, SUPER  ON *.* TO 'mnk'@'%' WITH GRANT OPTION;
 
 
mysql>FLUSH PRIVILEGES;</pre>
 
mysql>FLUSH PRIVILEGES;</pre>
 
После этого пользователь mnk c Паролем passwd может удаленно заходить на mysql и иметь там все права.
 
После этого пользователь mnk c Паролем passwd может удаленно заходить на mysql и иметь там все права.
 +
 
==Как запустить в bash скрипте команды mysql и mysqldump без ввода пароля==
 
==Как запустить в bash скрипте команды mysql и mysqldump без ввода пароля==
 
#создаем алиас<pre>mysql_config_editor set --login-path=alias_root --host=localhost --user=root --password</pre>
 
#создаем алиас<pre>mysql_config_editor set --login-path=alias_root --host=localhost --user=root --password</pre>

Версия 09:57, 10 апреля 2015

После установки, невозможно зайти удаленно пользователем root

Дело в том, что после установки у пользователя root есть только права входа локально, а удаленно войти не возможно
Добавляем пользователя mnk с паролем passwd:

  1. Локально в консоли входим в mysql с правами root
    $mysql -uroot -p
  2. Добавляем там нового пользователя (можно не root)
    mysql>CREATE USER 'mnk'@'%' IDENTIFIED BY 'passwd';
  3. Даем ему все права:
    mysql>GRANT EXECUTE, PROCESS, SELECT, SHOW DATABASES, SHOW VIEW, ALTER, ALTER ROUTINE, CREATE, CREATE ROUTINE, CREATE TABLESPACE, CREATE TEMPORARY TABLES, CREATE VIEW, DELETE, DROP, EVENT, INDEX, INSERT, REFERENCES, TRIGGER, UPDATE, CREATE USER, FILE, LOCK TABLES, RELOAD, REPLICATION CLIENT, REPLICATION SLAVE, SHUTDOWN, SUPER  ON *.* TO 'mnk'@'%' WITH GRANT OPTION;

mysql>FLUSH PRIVILEGES;

После этого пользователь mnk c Паролем passwd может удаленно заходить на mysql и иметь там все права.

Как запустить в bash скрипте команды mysql и mysqldump без ввода пароля

  1. создаем алиас
    mysql_config_editor set --login-path=alias_root --host=localhost --user=root --password
  2. А потом в самом скрипте
    mysqldump --login-path=alias_root name_base > file_dump.sql
  3. Или
    mysql --login-path=alias_root name_base < file_dump.sql

После переноса базы с сервера под Linux на сервер под Windows появились ошибки

Проблема

При добавлении или изменении поля типа INT или DATETIME, появились ошибки, что поле не может быть пустым.

Решение

Оказывается при установке сервера под Windows в my.ini прописывается параметр.

sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

Можно посмотреть если выполнить запрос.

SELECT @@GLOBAL.sql_mode

Меняем в my.ini на строку

sql-mode="NO_ENGINE_SUBSTITUTION"

И перезапускаем mysql

net stop mysql
net start mysql