Я пытаюсь установить mysql и получаю сообщение об ошибке:
mysql_upgrade: Got error: 1045: Access denied for user 'debian-sys-maint'@'localhost' (using password: YES) while connecting to the MySQL server
После некоторого поиска я обнаружил, что это, возможно, дает доступ к debian-sys-maint, поэтому Я сделал это:
sudo cat /etc/mysql/debian.cnf
Затем установил пароль debian в mysql:
mysql -u root -p <password>
GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'password-here';
Затем я перезапускаю:
sudo /etc/init.d/mysql restart
И снова пытаюсь настроить:
sudo dpkg --configure -a
Я получаю ту же ошибку.
Это происходит после многочисленных попыток ответить на вопрос
Проверить пользователей в установке MYSQL
mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
+-----------+-------------------------------------------+-----------------------+-----------+
| User | authentication_string | plugin | Host |
+-----------+-------------------------------------------+-----------------------+-----------+
| root | *4C856331B587C990CC0D06E7EC93CB2D7A2CAD5F | mysql_native_password | localhost |
| mysql | invalid | mysql_native_password | localhost |
| wordpress | *2D2CF7300069DAB3433A5A0F49B92407769EBC56 | mysql_native_password | localhost |
+-----------+-------------------------------------------+-----------------------+-----------+
Создать пользователя Debian-sys-maint
mysql> CREATE USER 'debian-sys-maint'@'localhost' IDENTIFIED BY 'password';
Использовать тот же пароль в файле debian.cnf
user@system:~$ sudo cat /etc/mysql/debian.cnf
# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host = localhost
user = debian-sys-maint
password = **n4aSHUP04s1J32X5**
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
user = debian-sys-maint
password = **n4aSHUP04s1J32X5**
socket = /var/run/mysqld/mysqld.sock
basedir = /usr
mysql> CREATE USER 'debian-sys-maint'@'localhost' IDENTIFIED BY 'n4aSHUP04s1J32X5';
Предоставьте доступ пользователю Debian-sys-maint
mysql> GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
mysql> EXIT
Немного поздно, но вот оно: Во-первых, я на
Distributor ID: Ubuntu
Description: Ubuntu 16.10
Release: 16.10
Codename: yakkety
, мне пришлось "снять отметку" с некоторых репозиториев программного обеспечения. Это легко сделать в графическом интерфейсе Программное обеспечение и обновления
на вкладке Другое программное обеспечение
. Я не отмечал:
Единственными проверенными репозиториями для меня были:
окно программного обеспечения и обновлений
Затем я решил проблему следующим путь:
sudo su
root@iqbal: mysql -u root -p
Enter password:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY '<your password>';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
Если возникает ошибка (1819), введите это в терминале mysql
mysql> uninstall plugin validate_password;
Затем перезапустите mysql: systemctl restart mysql
Наконец
apt install -f
, чтобы исправить сломанные зависимости
Если ошибка не исчезнет, снова войдите в терминал mysql, войдите в систему: введите это:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY '<your password>'
apt -f install
в последний раз.
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
libmecab2
Use 'sudo apt autoremove' to remove it.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
2 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Setting up mysql-server-5.7 (5.7.17-0ubuntu0.16.10.1) ...
Checking if update is needed.
Checking server version.
Running queries to upgrade MySQL server.
Checking system database.
mysql.columns_priv OK
mysql.db OK
mysql.engine_cost OK
mysql.event OK
mysql.func OK
mysql.general_log OK
mysql.gtid_executed OK
mysql.help_category OK
mysql.help_keyword OK
mysql.help_relation OK
mysql.help_topic OK
mysql.innodb_index_stats OK
mysql.innodb_table_stats OK
mysql.ndb_binlog_index OK
mysql.plugin OK
mysql.proc OK
mysql.procs_priv OK
mysql.proxies_priv OK
mysql.server_cost OK
mysql.servers OK
mysql.slave_master_info OK
mysql.slave_relay_log_info OK
mysql.slave_worker_info OK
mysql.slow_log OK
mysql.tables_priv OK
mysql.time_zone OK
mysql.time_zone_leap_second OK
mysql.time_zone_name OK
mysql.time_zone_transition OK
mysql.time_zone_transition_type OK
mysql.user OK
The sys schema is already up to date (version 1.5.1).
Checking databases.
(your databases will be shown here...)
Upgrade process completed successfully.
Checking if update is needed.
Setting up mysql-server (5.7.17-0ubuntu0.16.10.1) ...
Другой способ решения был: apt -u dist-upgrade