A solução mais compatível atual no meu caso é inserir a senha de root em
/etc/mysql/debian.cnf
Além disso, enviei um relatório de bug. link
Encontrei a seguinte falha no meu syslog depois de instalar o Ubuntu 16.04 e o MariaDB do Scratch usando este tutorial realmente incrível link
May 14 12:00:13 fortuna /etc/mysql/debian-start[1466]: /usr/bin/mysql_upgrade: the '--basedir' option is always ignored
May 14 12:00:13 fortuna /etc/mysql/debian-start[1466]: Looking for 'mysql' as: /usr/bin/mysql
May 14 12:00:13 fortuna /etc/mysql/debian-start[1466]: Looking for 'mysqlcheck' as: /usr/bin/mysqlcheck
May 14 12:00:13 fortuna /etc/mysql/debian-start[1466]: Version check failed. Got the following error when calling the 'mysql' command line client
May 14 12:00:13 fortuna /etc/mysql/debian-start[1466]: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
May 14 12:00:13 fortuna /etc/mysql/debian-start[1466]: FATAL ERROR: Upgrade failed
May 14 12:00:13 fortuna /etc/mysql/debian-start[1487]: Checking for insecure root accounts.
May 14 12:00:13 fortuna mysql[1020]: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Eu já criei um arquivo .my.cnf no diretório / root. Se eu executar "mysql" como root, posso fazer o login sem uma senha. (Veja abaixo)
root@fortuna:~# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 7071
Server version: 10.0.24-MariaDB-7 Ubuntu 16.04
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
Mas se eu tentar usar o mysqlcheck, eu recebo um erro como este:
root@fortuna:~# /usr/bin/mysqlcheck --defaults-file=/etc/mysql/debian.cnf --all-databases --fast --silent
/usr/bin/mysqlcheck: Got error: 1045: Access denied for user 'root'@'localhost' (using password: NO) when trying to connect
Se eu dei uma olhada mais de perto, descobri que há um arquivo /etc/mysql/debian.cnf que deve conter as senhas. Mas não há senha listada lá. Por outro lado, eu não deveria digitá-lo aqui porque diz NÃO TOQUE! O que devo fazer?
# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host = localhost
user = root
password =
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host = localhost
user = root
password =
socket = /var/run/mysqld/mysqld.sock
basedir = /usr
tente adicionar esse texto ao seu my.cnf e substitua - defaults-file = / etc / mysql / debian.cnf por - defaults-file = ~ / .my. cnf inclua sua senha. seu pedido foi negado porque o debian.cnf substitui [client]. if .my.cnf se parece com:
[client]
user=mysqluser
password=mysqlpass