Показаны сообщения с ярлыком mysql. Показать все сообщения
Показаны сообщения с ярлыком mysql. Показать все сообщения

понедельник, 1 октября 2018 г.

Mysql 5.7 root empty password and Ubuntu

sudo mysql -u root

mysql> use mysql;

mysql> update user set plugin='mysql_native_password' where User='root';

mysql> set password = password('_new_root_password_');

[mysql] flush privileges;

check:

mysql -u root -p
enter new root password

среда, 22 августа 2018 г.

Recreate mysql data dir

Recreate mysql data dir (without backup)


systemctl stop mysql

(rm -r /var/lib/mysql)
mkdir /var/lib/mysql
chown mysql. /var/lib/mysql

mysqld --initialize

You can find password for root in /var/log/mysql/error.log
~A temporary password is generated for root@localhost: xxxxxxxx~

mysql -u root -p

systemctl start mysql

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');

понедельник, 22 января 2018 г.

Mysql copy database

sudo apt-get install mysql-utilities

mysqldbcopy \
    --source=root:your_password@localhost \
    --destination=root:your_password@localhost \
    sitedb1:sitedb2

or

mysqldump db_name | mysql new_db_name

среда, 17 января 2018 г.

Mysql and new location for data with Errcode: 13 - Permission denied


For new instance data dir:

mysqld --initialize

mysqld: Can't create directory '/xxxx/mysql/' (Errcode: 13 - Permission denied)

add to file /etc/apparmor.d/ usr.sbin.mysqld new location

# Allow data dir access
  /var/lib/mysql/ r,
  /var/lib/mysql/** rwk,
 /xxxx/mysql/ r,  /xxxx/mysq/** rwk,
and reload apparmor

service apparmor reload


other way

apt install appamor-utils
aa-disable /usr/sbin/mysqld
Disabling /usr/sbin/mysqld.

mysqld --initialize

You can find password for root in /var/log/mysql/error.log
A temporary password is generated for root@localhost: xxxxxxxx

пятница, 5 июня 2015 г.

MySQL и GUI

если надо локальный gui для mysql, можно использовать - emma

 sudo aptitude install emma

следует только отметить, что запускается она командой с большой буквы - т.е. Emma

понедельник, 8 октября 2012 г.

Ejabberd и mysql


Настройка для mysql

** Качаем схему (схема есть в /usr/share/doc/ejabberd/examples/mysql.sql.gz)
wget https://git.process-one.net/ejabberd/mainline/blobs/raw/2.1.x/src/odbc/mysql.sql


** Создаём пользователя ejabberd:
$ mysql -p -u root
mysql> GRANT ALL ON ejabberd.* TO 'ejabberd'@'localhost' IDENTIFIED BY 'password';
пароль ставим свой

** Создаём базу данных ejabberd:
mysql> CREATE DATABASE ejabberd;
mysql> quit

** Загружаем схему в БД:
$ mysql -D ejabberd -p -u ejabberd  < mysql.sql

** настраиваем ejabberd на MySQL, прописываем в ejabberd.cfg:
%%{auth_method, internal}.
{auth_method, odbc}.
{odbc_server, {mysql, "localhost", "ejabberd", "ejabberd", "password"}}.
пароль ставим свой

** Указываем какие таблицы будут храниться в MySQL.
Список всех таблиц, данные из которых можно перенести в MySQL можно узнать посмотрев какие модули odbc присутствуют:
ls /usr/lib/ejabberd/ebin | grep mod | grep odbc
mod_last_odbc.beam
mod_offline_odbc.beam
mod_privacy_odbc.beam
mod_private_odbc.beam
mod_pubsub_odbc.beam
mod_roster_odbc.beam
mod_vcard_odbc.beam
т.е. находим в конфиге строки вида {mod_last,     []}, {mod_offline,  []}, и меняем их на {mod_last_odbc,     []},  {mod_offline_odbc,  []}, в соответствии со списком найденых модулей


** скачиваем модули подключения erlang к MySQL -- https://support.process-one.net/doc/display/CONTRIBS/Yxa - не работала на момент установки - было довольно продолжительное время "The system is currently under maintenance. Please, come back in a while. Sorry for the inconvenience." или берем
svn co https://svn.process-one.net/ejabberd-modules/mysql/trunk mysql

Компилируем с помощью скрипта build.sh (для этого нужен полный erlang иначе будет сообщение вида "mysql Crash dump was written to: erl_crash.dump")


Из каталога ebin копируем файлы *.beam к остальным модулям (файлы с расширением *.beam). В Debian это /usr/lib/ejabberd/ebin/

Рестартим ejabberd, но при этом может остаться висеть процесс /usr/lib/erlang/erts-5.8/bin/beam и модуль для mysql не подхватиться - его надо убить и затем запустить ejabberd.





суббота, 22 сентября 2012 г.

Glassfish + Mysql - настройка

Размещаем в /opt/glassfish3

Запуск консоли админа /opt/glassfish3/bin/asadmin

Создаем домен командой
asadmin> create-domain _домен_
Отвечаем на вопросы.

полезное описание http://pgtk.edu.ru/gooamoko/doku.php?id=java_glassfish_quickstart

добавим в него JDBC-драйвера http://dev.mysql.com/downloads/connector/j/5.0.html
mysql-connector-java-5.1.20-bin.jar

Распаковываем и помещаем в /opt/glassfish3/glassfish/domains/_домен_/lib/ext

Запускаем домен
asadmin> start-domain

Идем браузером на порт 4848 и авторизуемся. Если получено что-то вроде "Secure Admin must be enabled to access the DAS remotely" - необходимо разрешить доступ
asadmin> enable-secure-admin
Enter admin user name> admin
Enter admin password for user "admin">
и перезапустить домен.

Слева в меню Common Tasks -> JDBC нужно создать пул подключений (Connection Pool), ответив на вопросы. 2 экрана - вводим имя пула, выбираем нужный драйвер, url, логин и пароль к базе

После создания пула, можно добавить ресурс, который будет ссылаться на этот пул подключений. Имя ресурса будет использоваться Java-приложением для работы с СУБД. (JDBC Resource)
Вводим имя ресурса, выбираем пул. По завершении можно проверить подключение к СУБД. Для этого нужно открыть для изменения параметров пул соединений и воспользоваться кнопкой «Ping»

четверг, 19 июля 2012 г.

Java + Mysql + utf8 = вопросы вместо русских букв (??????)

Если при записи в базу получаем вместо русских букв знаки вопроса, добавляем в параметры подключение к JDBC

useUnicode=true
characterEncoding=utf8

Т.е. урл для подключения к базе должен представлять вид - jdbc:mysql://hostname:port/database?useUnicode=true&characterEncoding=utf8

и не лишним будет сразу после подключения к базе выполнить два "запроса"

stat.execute("set character set utf8");
stat.execute("set names utf8");

воскресенье, 25 марта 2012 г.

Java + Mysql

Драйвер JDBC для mysql качаем отсюда: http://dev.mysql.com/downloads/connector/j/

Далее в проекте в каталоге src создаем каталог lib и туда из архива с драйвером копируем
mysql-connector-java-x.x.xx-bin.jar (либо через импорт)

Затем надо подключить jar в classpath - самая обширная инструкция есть тут http://www.vogella.de/articles/Eclipse/article.html#classpath

В кратце - идем: (проект) Properties -> Java Build Path -> (вкладка) Libraries -> (кнопка) Add JARs, находим наш проект и каталог lib в нем mysql-connector-java-x.x.xx-bin.jar и Ок.

Примеров кода полно в инете, к примеру http://www.vogella.de/articles/MySQLJava/article.html

Из основного:

Class.forName("com.mysql.jdbc.Driver");
connect = DriverManager.getConnection("jdbc:mysql://localhost/?"
+ "user=sqluser&password=sqluserpw");
statement = connect.createStatement();
resultSet = statement.executeQuery("select * from ....");
while (resultSet.next()) {
...
String user = resultSet.getString("myuser");
Date date = resultSet.getDate("datum");
...
}


ну и забыть про try + catch не даст компилятор.

понедельник, 21 ноября 2011 г.

mysqldump и ошибка 1016

Если при выполнении дампа базы с помощью mysqldump получили ошибку вида:

mysqldump: Got error: 1016: Can’t open file: ‘.....’ (errno: 24) when using LOCK TABLES

можно попробовать добавить (увеличить) в /etc/my.cnf

open-files-limit=32000

суббота, 19 ноября 2011 г.

Mysql и несколько экземпляров на одном сервере.

Потребности в такой установке могут быть весьма различны, а вот этапы настройки вполне одинаковые.

Будем использовать mysqld_multi - программа для управления множеством серверов MySQL.

Для понимания процесса читаем доки.
http://dev.mysql.com/doc/refman/5.0/en/mysqld-multi.html
http://mysql.ru/docs/man/mysqld_multi.html

Создаем каталог для multi mysql, к примеру /var/lib/mysql_multi/
и в нем подкаталоги 01,02...nn
Выставим нужные права на них и собственника.
chmod 755 /var/lib/mysql_multi -R
chown mysql:mysql /var/lib/mysql_multi -R

Создадим в my.cnf нужные разделы (см. ссылки выше) со своими путями к файлам
[mysqld_multi]
mysqld = /usr/local/bin/mysqld_safe
mysqladmin = /usr/local/bin/mysqladmin
user = multi_admin
password = multipass

к примеру для экземпляра #2

[mysqld2]
socket = /var/run/mysqld/mysqld2.sock
port = 3312
pid-file = /var/run/mysqld/mysqld2.pid
datadir = /var/lib/mysql_multi/02
language = /usr/share/mysql/english
user = mysql

** Перед запуском сервера mysql необходимо создать структуру в целевом каталоге:

mysql_install_db --user=mysql --datadir=/var/lib/mysql_multi/02

** Запуск нужного экземпляра сервера:

mysqld_multi start 2

** проверитм подключение:

mysql --socket=/var/run/mysqld/mysqld2.sock
или
mysql --host=127.0.0.1 --port=3312

НЕ ИСПОЛЬЗУЙТЕ "localhost" вместо "127.0.0.1"! Иначе вместо подключения к нужному порту будет задействован сокет по умолчанию. А это будет совсем не тот экземпляр сервера, который вы хотели.

** установим пароль рута:

mysqladmin --socket=/var/run/mysqld/mysqld2.sock -u root password 'new-password'
или
mysqladmin --host=127.0.0.1 --port=3312 -u root password 'new-password'

Так же создадим пользователя mulit_admin и права для выключения сервера mysql для всех экземпляров сервера:

GRANT SHUTDOWN ON *.* TO 'multi_admin'@'localhost' IDENTIFIED BY 'multipass';

к примеру так:

echo "GRANT SHUTDOWN ON *.* TO 'multi_admin'@'localhost' IDENTIFIED BY 'multipass';" | mysql --host=127.0.0.1 --port=3312 -u root -p'password'

ну и соответственно в разделе my.cnf [mysqld_multi] надо внести те же значения
user = multi_admin
password = multipass

Собственно, пока все. Т.е. теперь запустить экземпляры сервера mysql можно командой

mysqld_multi start 2,4,5
остановить аналогично
mysqld_multi stop 2,4,5

вторник, 9 августа 2011 г.

Mysql и переезд на новый сервер

Понадобилось скопировать пользователей и их права на новый сервер
не плохо подошла для этого утилитка mk-show-grants из пакета Maatkit
http://www.maatkit.org

mk-show-grants --separate --revoke --ask-pass > users.sql

единственный неприятный момент, требуется пароль, а когда используется > users.sql вывод приглашения перенаправляется, т.е. надо вводит "вслепую" и enter
А потом из users.sql надо удалить первую строку - Enter password:

и на целевом сервере втянуть users.sql в базу

четверг, 16 июня 2011 г.

Mysql изменить пароль root

Имеем три способа:

1. -------------------------------------
mysql -u root
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');

2. -------------------------------------
mysqladmin -u root password "newpass"


3. -------------------------------------
mysql -u root
mysql> use mysql;
mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE User = 'root';
mysql> FLUSH PRIVILEGES;

вторник, 31 августа 2010 г.

Резервная копия mysql

Есть и более продвинутые средства, но когда надо быстро:

mysqldump -u "юзер" -p --opt "база" > "имя_файла"

запросит пароль и сбросит копию в "имя_фала".

Еще один момент, иногда надо целиком перекинуть базы, в том числе и создать их в новом месте, первый вариант не совсем подходит, можно запустить так:

mysqldump -u "юзер" -p -B "список баз" > "имя_файла"

Если вдруг получили при этом что-то вроде этого
mysqldump: Got error: 29: File .... not found (Errcode: 24) when using LOCK TABLES
(слишком много одновременно открываемых файлов)

Можно просто добавить опцию --single-transaction

mysqldump -u "юзер" -p --single-transaction -B "список баз" > "имя_файла"

четверг, 12 августа 2010 г.

Сброс пароля root mysql

Сброс пароля пользователя root в mysql.

1. Останавливаем mysql.
2. Запускаем mysql следующей командой:

/usr/bin/mysqld_safe --skip-grant-tables --user=root &

3. Запускаем клиента mysql
mysql -u root
4. Выполняем sql запрос
UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
где newpwd - новый пароль.
5. Применяем изменения
FLUSH PRIVILEGES;
6. Выходим из mysql клиента выполнив в нем команду exit
7. Перегружаем mysql сервер.

вторник, 29 сентября 2009 г.

Mysql и "битая" таблица

Если вдруг пропал доступ и в ошибки начало валиться - "Table 'xxxx' is marked as crashed and should be repaired" или "Checking for corrupt, not cleanly closed and upgrade needing tables" то надо копать в сторону mysqlcheck с ключом -r
mysqlcheck [OPTIONS] database [tables]

mysqlcheck -r -u _юзер_ -p _база_ _битая_таблица_

В итоге если случай не сильно запущенный, все будет хорошо.

Еще вариант
mysqlcheck --check-upgrade --all-databases --auto-repair -u root -p
mysql_upgrade --force -u root -p

понедельник, 29 июня 2009 г.

Создание новой базы в MySQL

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '<password>

mysqladmin -u root -p create new_base
вводим пароль и база создана, теперь раздать на нее права, к примеру для traff

или в консоли mysql
CREATE DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci;


mysql -u root -p
вводим пароль и получаем оболчку
mysql>

вводим
GRANT ALL PRIVILEGES ON new_base.* TO traff@localhost IDENTIFIED BY 'пароль';

Если при попытке создания новой базы вылезло
Can't create database 'database'. (errno: 13)'
значит или сменились права на каталог /var/lib/mysql или владелец - должен быть mysql:mysql