powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / MySQL 8.0 не могу залогинится как user=root в docker контейнере
15 сообщений из 15, страница 1 из 1
MySQL 8.0 не могу залогинится как user=root в docker контейнере
    #39759570
akalend
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне нужен docker контейнер с двуьмя экземплярами MySQL. Я взял официальный последний образ MySQL 8.0

1) сделал отдельный файл my2.cnf
2) отдельные директории /var/lib/mysql2 & /var/log/mysql2
3) запустил
Код: powershell
1.
2.
3.
4.
5.
 
       mysqld  --defaults-file=/etc/mysql/my2.cnf  --initialize --user=mysql
       mysql_ssl_rsa_setup --datadir=/var/lib/mysql2
       mysqld_safe  --defaults-file=/etc/mysql/my2.cnf &
   


4) Но не могу подконектится используя нативный клиент mysql (Access denied)
5)
Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
 
ps ax
  PID TTY      STAT   TIME COMMAND
    1 pts/0    Ss+    0:00 bash
  376 pts/1    S      0:00 /bin/sh /usr/bin/mysqld_safe --defaults-file=/etc/mysql/my2.cnf
  609 pts/1    Sl     0:07 /usr/sbin/mysqld --defaults-file=/etc/mysql/my2.cnf --basedir=/usr --datadir=/var/lib/mysql2 --plugin-dir=/usr/lib/mysql/plugin --user
  664 pts/1    R+     0:00 ps ax

mysql   --socket=/var/run/mysqld/mysqld2.sock --protocol=socket
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)



Таблицы в директории /var/lib/mysql2 присутствуют
6) my.cnf
Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
  
[mysqld]
pid-file        = /var/run/mysqld/mysqld2.pid
socket          = /var/run/mysqld/mysqld2.sock
datadir         = /var/lib/mysql2

port            		= 3307
basedir         		= /usr

tmpdir          		= /tmp

#user             = mysql

log-bin           = /var/log/mysql2/mysql-bin.log
log-error         = /var/log/mysql2/error.log

bind-address            	= 0.0.0.0

secure-file-priv= NULL


Вопрос: что не так? чего не хватает?
...
Рейтинг: 0 / 0
MySQL 8.0 не могу залогинится как user=root в docker контейнере
    #39759572
akalend
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как узнать пароль?
...
Рейтинг: 0 / 0
MySQL 8.0 не могу залогинится как user=root в docker контейнере
    #39759576
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akalendКак узнать пароль?
Проще его установить, вот короткая кошерная инструкция .
...
Рейтинг: 0 / 0
MySQL 8.0 не могу залогинится как user=root в docker контейнере
    #39759578
akalend
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andy_OLAPakalendКак узнать пароль?
Проще его установить, вот короткая кошерная инструкция .
Код: powershell
1.
2.
3.
mysqladmin  --defaults-file=/etc/mysql/my2.cnf  -u root password '1234'
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'
...
Рейтинг: 0 / 0
MySQL 8.0 не могу залогинится как user=root в docker контейнере
    #39759585
akalend
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запустил в режиме --skip-grant-tables

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
mysql> select user,host,authentication_string from user ;
+------------------+-----------+------------------------------------------------------------------------+
| user             | host      | authentication_string                                                  |
+------------------+-----------+------------------------------------------------------------------------+
| mysql.infoschema | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.session    | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.sys        | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| root             | localhost | $A$005$F>w^_v63xqhjr`A6Si/BsEsXPkGg0Ve91d6zFaQJFlyFwdt/27m4.61z98 |
+------------------+-----------+------------------------------------------------------------------------+
4 rows in set (0.00 sec)


как тут установить пароль ALTER USER не работает
...
Рейтинг: 0 / 0
MySQL 8.0 не могу залогинится как user=root в docker контейнере
    #39759586
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akalendЗапустил в режиме --skip-grant-tables
как тут установить пароль ALTER USER не работает
Для начала запустить, отключив сеть mysqld_safe --skip-grant-tables --skip-networking &
Затем просто зайти mysql -u root.
Затем FLUSH PRIVILEGES;
И уже выставить новый пароль ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
Или можно попробовать SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');
...
Рейтинг: 0 / 0
MySQL 8.0 не могу залогинится как user=root в docker контейнере
    #39759587
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О, оказывается для MySQL есть штатная инструкция по запуску его в Докере.
https://dev.mysql.com/doc/refman/8.0/en/docker-mysql-getting-started.html#docker-starting-mysql-server Once initialization is finished, the command's output is going to contain the random password generated for the root user; check the password with, for example, this command:

shell> docker logs mysql1 2>&1 | grep GENERATED
GENERATED ROOT PASSWORD: Axegh3kAJyDLaRuBemecis&EShOs
...
Рейтинг: 0 / 0
MySQL 8.0 не могу залогинится как user=root в docker контейнере
    #39759590
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andy_OLAPПроще его установить, вот короткая кошерная инструкция .Устарело безнадежно.

Есть официальная инструкция для 8.0: https://dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html
Она сильно отличается от той, да ещё и для более ранней версии.
...
Рейтинг: 0 / 0
MySQL 8.0 не могу залогинится как user=root в docker контейнере
    #39759591
akalend
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftО, оказывается для MySQL есть штатная инструкция по запуску его в Докере.

Да, это сработало для первого инстанса, а вот как определить/сгенерировать пароль для второго?
...
Рейтинг: 0 / 0
MySQL 8.0 не могу залогинится как user=root в docker контейнере
    #39759593
akalend
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkleЕсть официальная инструкция для 8.0: https://dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html
Она сильно отличается от той, да ещё и для более ранней версии.

Код: sql
1.
2.
mysql> SET PASSWORD  = '12345';
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
...
Рейтинг: 0 / 0
MySQL 8.0 не могу залогинится как user=root в docker контейнере
    #39759594
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akalendmiksoftО, оказывается для MySQL есть штатная инструкция по запуску его в Докере.

Да, это сработало для первого инстанса, а вот как определить/сгенерировать пароль для второго?Для второго, вероятно, будет так:
Код: sql
1.
shell> docker logs mysql2 2>&1 | grep GENERATED
...
Рейтинг: 0 / 0
MySQL 8.0 не могу залогинится как user=root в docker контейнере
    #39759595
akalend
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkleЕсть официальная инструкция для 8.0: https://dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html
Она сильно отличается от той, да ещё и для более ранней версии.

Помогло:
Код: plsql
1.
2.
FLUSH PRIVILEGIES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';



Больщое спасибо, целый день убил... трижды все переинсталлировал :(
...
Рейтинг: 0 / 0
MySQL 8.0 не могу залогинится как user=root в docker контейнере
    #39759604
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akalendБольщое спасибо, целый день убил... трижды все переинсталлировал :(Да не за что. Сам в каникулы любопытства ради поднял 8.0 на фряхе. Пока разобрался, узнал много нового. По ощущениям, скажем так, секись ишшо тот, по сравнению с 5.6 или более ранними версиями. Собственно, "новости" начались ещё в 5.7, так что, ожидаемо.
Переустановка не нужна, в общем то. Достаточно при неудачных телодвижениях первого запуска (инициализация) очистить датадир (или, если лень набрать rm -rf /path/to/data_dir/*, можно указать в конфиге другое расположение директории для хранения данных).
Для себя решил на будущее, что на фряхе сразу после установки наиболее проста несекурная инициализация запуском mysqld вручную (в стартовом скрипте чего-то не хватает, не отработал он корректно, версия 8.0.12). В результате инициализации создается набор файлов/директорий/баз и пользователь root@localhost без пароля. Потом штатный запуск демона, логинимся, SET PASSWORD, и так далее.
...
Рейтинг: 0 / 0
MySQL 8.0 не могу залогинится как user=root в docker контейнере
    #39760020
akalend
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тут для совместимости с 5.7 надо создать пользователя
Код: sql
1.
CREATE USER user  IDENTIFIED WITH mysql_native_password BY '12345';


так как на машине клиент от 5.7, на докере 8.0, то приходится так изощряться
...
Рейтинг: 0 / 0
MySQL 8.0 не могу залогинится как user=root в docker контейнере
    #39760028
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для старых клиентов надо ещё директиву в конфиге добавить
Код: sql
1.
2.
[mysqld]
default-authentication-plugin = mysql_native_password
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / MySQL 8.0 не могу залогинится как user=root в docker контейнере
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]