Mysql: различия между версиями
Misha (обсуждение | вклад) (→Как запустить в bash скрипте команды mysql и mysqldump без ввода пароля) |
Dim (обсуждение | вклад) (→Другой вариант) |
||
(не показано 11 промежуточных версий 2 участников) | |||
Строка 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;</pre> |
− | CREATE TEMPORARY TABLES, CREATE VIEW, DELETE, DROP, EVENT, INDEX, INSERT, REFERENCES, TRIGGER, UPDATE, CREATE USER, FILE, | + | #Принимаем изменения: <pre>mysql>FLUSH PRIVILEGES;</pre> |
− | LOCK TABLES, RELOAD, REPLICATION CLIENT, REPLICATION SLAVE, SHUTDOWN, SUPER ON *.* TO 'mnk'@'%' WITH GRANT OPTION; | + | #Выходим из mysql: <pre>mysql>\q</pre> |
− | mysql>FLUSH PRIVILEGES;</pre> | ||
После этого пользователь mnk c Паролем passwd может удаленно заходить на mysql и иметь там все права. | После этого пользователь mnk c Паролем passwd может удаленно заходить на mysql и иметь там все права. | ||
+ | |||
+ | ==Установить последнюю версию MYSQL с сайта mysql.com== | ||
+ | #Идем на [https://dev.mysql.com/downloads/mysql сайт] и качаем версию файла (mysql-apt-config_0.3.3-2ubuntu14.04_all.deb) для Вашего дистрибутива | ||
+ | #Устанавливаем данный пакет:<pre>sudo dpkg -i mysql-apt-config_0.3.3-2ubuntu14.04_all.deb</pre>Во время установки конфигурируем какую версию MYSQL устанавливаем. Например, выбираем сервер, версия 5.6. Затем сохраняем, выбрав Apply. | ||
+ | #Устанавливаем новую версию MYSQL<pre>sudo apt-get update</pre><pre>sudo apt-get install mysql-server</pre> | ||
+ | Таким же образом можно установить последнюю версию Workbench. | ||
+ | |||
==Как запустить в 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> | ||
#А потом в самом скрипте<pre>mysqldump --login-path=alias_root name_base > file_dump.sql</pre> | #А потом в самом скрипте<pre>mysqldump --login-path=alias_root name_base > file_dump.sql</pre> | ||
#Или<pre>mysql --login-path=alias_root name_base < file_dump.sql</pre> | #Или<pre>mysql --login-path=alias_root name_base < file_dump.sql</pre> | ||
+ | |||
+ | ===Другой вариант=== | ||
+ | Передача пароля через локальный файл конфигурации .my.cnf, | ||
+ | размещенный в корне домашней директории пользователя: | ||
+ | |||
+ | Пример .my.cnf: | ||
+ | |||
+ | <pre> | ||
+ | [client] | ||
+ | user = имя_пользователя | ||
+ | password = пароль | ||
+ | host = хост_БД | ||
+ | [mysql] | ||
+ | database = имя_бд | ||
+ | </pre> | ||
+ | |||
+ | Тогда в консоли для подлючения к базе данных в консоли, или скрипте, достаточно использовать команду mysql. | ||
+ | |||
+ | (с) http://www.opennet.ru/tips/info/1313.shtml | ||
==После переноса базы с сервера под Linux на сервер под Windows появились ошибки== | ==После переноса базы с сервера под Linux на сервер под Windows появились ошибки== |
Текущая версия на 14:49, 21 апреля 2015
Содержание
После установки, невозможно зайти удаленно пользователем root
Дело в том, что после установки у пользователя root есть только права входа локально, а удаленно войти не возможно
Добавляем пользователя mnk с паролем passwd:
- Локально в консоли входим в mysql с правами root
$mysql -uroot -p
- Добавляем там нового пользователя (можно не root)
mysql>CREATE USER 'mnk'@'%' IDENTIFIED BY 'passwd';
- Даем ему все права:
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;
- Выходим из mysql:
mysql>\q
После этого пользователь mnk c Паролем passwd может удаленно заходить на mysql и иметь там все права.
Установить последнюю версию MYSQL с сайта mysql.com
- Идем на сайт и качаем версию файла (mysql-apt-config_0.3.3-2ubuntu14.04_all.deb) для Вашего дистрибутива
- Устанавливаем данный пакет:
sudo dpkg -i mysql-apt-config_0.3.3-2ubuntu14.04_all.deb
Во время установки конфигурируем какую версию MYSQL устанавливаем. Например, выбираем сервер, версия 5.6. Затем сохраняем, выбрав Apply. - Устанавливаем новую версию MYSQL
sudo apt-get update
sudo apt-get install mysql-server
Таким же образом можно установить последнюю версию Workbench.
Как запустить в bash скрипте команды mysql и mysqldump без ввода пароля
- создаем алиас
mysql_config_editor set --login-path=alias_root --host=localhost --user=root --password
- А потом в самом скрипте
mysqldump --login-path=alias_root name_base > file_dump.sql
- Или
mysql --login-path=alias_root name_base < file_dump.sql
Другой вариант
Передача пароля через локальный файл конфигурации .my.cnf, размещенный в корне домашней директории пользователя:
Пример .my.cnf:
[client] user = имя_пользователя password = пароль host = хост_БД [mysql] database = имя_бд
Тогда в консоли для подлючения к базе данных в консоли, или скрипте, достаточно использовать команду mysql.
(с) http://www.opennet.ru/tips/info/1313.shtml
После переноса базы с сервера под 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