1

Тема: Mysql root privileges на різних хостах (localhost != 127.0.0.1)

Також задав питання тут, хто сидить на SO має шанс підняти собі рейтинг.

Значить суть в тому що якщо конектитись через "різні" хости, доступ до таблиць то з’являється, то зникає:

$ mysql -u root -h 127.0.0.1 -e 'show tables' created_from_host;
+-----------------------------+
| Tables_in_created_from_host |
+-----------------------------+
| test                        |
+-----------------------------+

$ mysql -u root -h localhost -e 'show tables' created_from_host;
ERROR 1049 (42000): Unknown database 'created_from_host'

Хоча в обох випадках current_user() показує 'root'@'localhost', і привілегії ті самі...

Як дати руту привілегії на всі бази на всіх хостах?

2

Re: Mysql root privileges на різних хостах (localhost != 127.0.0.1)

my.cnf покажіть.
і hosts теж, там може бути
127.0.1.1 localhost

3

Re: Mysql root privileges на різних хостах (localhost != 127.0.0.1)

koala написав:

my.cnf покажіть.
і hosts теж, там може бути
127.0.1.1 localhost

Hosts це перше що я перевірив, там все ок. my.cnf завтра на роботі подивлюсь. А що там варто шукати?

4

Re: Mysql root privileges на різних хостах (localhost != 127.0.0.1)

bunyk написав:

Hosts це перше що я перевірив, там все ок. my.cnf завтра на роботі подивлюсь.

Обидва файли треба дивитися на тому комп'ютері, де mysql розгорнуто. І я просив не подивитися, а показати.

bunyk написав:

А що там варто шукати?

bind-address = 127.0.0.1

Наприклад.

5

Re: Mysql root privileges на різних хостах (localhost != 127.0.0.1)

/etc/my.cnf :

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
user=mysql

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

6

Re: Mysql root privileges на різних хостах (localhost != 127.0.0.1)

І є ще цікавіше:

[zenoss@localhost ~]$ mysql -u root -h 127.0.0.1 -pzenoss -e 'select host, user, db from mysql.db';
+------+------+---------+
| host | user | db      |
+------+------+---------+
| %    |      | test    |
| %    |      | test\_% |
+------+------+---------+
[zenoss@localhost ~]$ mysql -u root -h localhost -pzenoss -e 'select host, user, db from mysql.db';
+-----------+--------+--------------+
| host      | user   | db           |
+-----------+--------+--------------+
| %         |        | test         |
| %         |        | test\_%      |
| %         | zenoss | zenoss_zep   |
| %         | zenoss | zodb         |
| %         | zenoss | zodb_session |
| localhost | zenoss | zenoss_zep   |
| localhost | zenoss | zodb         |
| localhost | zenoss | zodb_session |
+-----------+--------+--------------+

Як одна і та ж табличка може містити різні рядки?

7

Re: Mysql root privileges на різних хостах (localhost != 127.0.0.1)

StackOverflow написав:

On Unix, MySQL programs treat the host name localhost specially, in a way that is likely different from what you expect compared to other network-based programs. For connections to localhost, MySQL programs attempt to connect to the local server by using a Unix socket file. This occurs even if a --port or -P option is given to specify a port number.

StackOverflow
Це не може бути причиною?

8

Re: Mysql root privileges на різних хостах (localhost != 127.0.0.1)

Bartash написав:
StackOverflow написав:

On Unix, MySQL programs treat the host name localhost specially, in a way that is likely different from what you expect compared to other network-based programs. For connections to localhost, MySQL programs attempt to connect to the local server by using a Unix socket file. This occurs even if a --port or -P option is given to specify a port number.

StackOverflow
Це не може бути причиною?

Це я вже читав. Допустимо що в цьому причина. Тоді як її усунути? Хочу аби рут з усіх хостів мав доступ до всіх баз... Напевне спробую:

insert into mysql.db (host, user, db, ... ) values ("%", "root", "%", Y, ...)

9 Востаннє редагувалося User 298 (02.11.2013 22:28:29)

Re: Mysql root privileges на різних хостах (localhost != 127.0.0.1)

GRANT підійде?

GRANT ALL PRIVILEGES
ON database.*
TO ‘root’@'%'
IDENTIFIED BY 'newpassword';