После того, как я обновил Ubuntu с 14.4 до 16.4 в Digital Ocean, мои базы данных не отображаются, когда я запускаю базы данных команды show; Он показывает только следующее: тест information_schema
Если я зайду в / var / lib / mysql, мои файлы базы данных будут там.
Я не уверен, что у него есть что-то с файлом /etc/mysql/my.cnf, и нужно ли мне добавить к нему информацию, в настоящее время это выглядит так:
#
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
#
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
#
# * IMPORTANT: Additional settings that can override those from this file!
# The files must end with '.cnf', otherwise they'll be ignored.
#
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
, если я запускаю Следующие команды я получил этот вывод
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
+--------------------+
1 row in set (0.00 sec)
mysql> SELECT USER(),CURRENT_USER();
+----------------+----------------+
| USER() | CURRENT_USER() |
+----------------+----------------+
| root@localhost | root@localhost |
+----------------+----------------+
1 row in set (0.00 sec)
mysql> SHOW GRANTS;
+--------------------------------------------------------------+
| Grants for root@localhost |
+--------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'root'@'localhost' |
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION |
+--------------------------------------------------------------+
2 rows in set (0.00 sec)
Итак, проблема была с привилегиями пользователя root, я просто остановил сервер MySQL и затем перезапустил его с помощью
sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &
, после чего я подключился к серверу MySQL с помощью mysql клиент
shell> mysql
затем я предоставляю все привилегии пользователю root
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
После этого я останавливаю сервер и перезапускаю его нормально, теперь, когда я звоню SHOW DATABASES;
, он перечисляет все мои базы данных и я могу создать новый.
Спасибо всем за помощь.