I’ve tried multiple solutions from StackOverflow but haven’t had any success. I’m on Mac OSX (Sierra 10.12.3) trying to create a new database and user. From terminal I enter:
mysql -u root
which outputs this error:
ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)
To try and resolve it I stopped mysql from ‘System Preferences’, then from terminal typed:
sudo mysqld_safe —skip-grant-tables
I opened a second tab and entered:
mysql -u root
Then from in mysql:
update mysql.user set password_expired = 'N', authentication_string=PASSWORD('newpassword') where user = 'root';
flush privileges;
I then restart the computer (killing the process with CMD + C doesn’t work). After restarting, trying mysql -u root
still produces the same error.
I am able to access mysql via a MySQL client and a non-root user.
Any help is appreciated.
asked Mar 11, 2017 at 23:52
19
For security reason mysql -u root wont work untill you pass -p in command so try with below way
mysql -u root -p[Enter]
//enter your localhost password
answered Mar 21, 2017 at 3:59
Pramod PatilPramod Patil
2,6542 gold badges13 silver badges20 bronze badges
1
mysql -u root -p;
And mysql will ask for the password
answered Mar 20, 2017 at 9:18
gud3gud3
5453 silver badges10 bronze badges
2
Just to confirm: You are sure you are running MySQL 5.7, and not MySQL 5.6 or earlier version. And the plugin column contains «mysql_native_password». (Before MySQL 5.7, the password hash was stored in a column named password. Starting in MySQL 5.7, the password column is removed, and the password has is stored in the authentication_string column.) And you’ve also verified the contents of authentication string matches the return from PASSWORD(‘mysecret’). Also, is there a reason we are using DML against the mysql.user table instead of using the SET PASSWORD FOR syntax?
– spencer7593
So Basically Just make sure that the Plugin Column contains «mysql_native_password».
Not my work but I read comments and noticed that this was stated as the answer but was not posted as a possible answer yet.
answered Mar 21, 2017 at 22:51
Ansel FaillaceAnsel Faillace
4091 gold badge4 silver badges11 bronze badges
just use:
$ sudo mysql
without the «-u root» parameter.
answered Mar 18, 2017 at 18:43
Alex AngelicoAlex Angelico
3,5248 gold badges30 silver badges48 bronze badges
1
If you need to skip the password prompt for some reason, you can input the password in the command (Dangerous)
mysql -u root --password=secret
answered Mar 21, 2017 at 19:53
lofihelsinkilofihelsinki
2,4602 gold badges22 silver badges35 bronze badges
You must run your mysql by xampp-controle.exe in folder XAMPP. After that login:
mysql -u root
answered Mar 18, 2017 at 18:38
b2okb2ok
5506 silver badges13 bronze badges
5
Is it possible the root password is not what you think it is? Have you checked the file /root/.mysql_secret for the password? That is the default location for the automated root password that is generated from starting from version 5.7.
cat /root/.mysql_secret
answered Mar 21, 2017 at 19:05
Try this (on Windows, i don’t know how in others), if you have changed password a now don’t work.
1) kill mysql
2) back up /mysql/data folder
3) go to folder /mysql/backup
4) copy files from /mysql/backup/mysql folder to /mysql/data/mysql (rewrite)
5) run mysql
In my XAMPP on Win7 it works.
answered Sep 15, 2017 at 13:20
Comment by @Niagaradad helped me. I was entering the wrong password the whole time.
Notice the error message
ERROR 1045 (28000): Access denied for user ‘ayaz’@’localhost’ (using password: YES)
It says, Password: Yes. That means I am sending the password to SQL and that is wrong.
Usually root account doesn’t have password if you haven’t set one. If you have installed mysql via homebrew then root account won’t have a password.
Here is the comment.
so, not exactly the same then. NO means you are not sending a password to MySQL. YES means you are sending a password to MySQL but the incorrect one. Did you specifically set a password for the mysql root user when you installed MySQL? By default there is no password so you can use mysql -u root -p and hit enter.
answered Nov 26, 2019 at 10:11
In my case, I needed to Edit Inbound Rules
on my AWS RDS instance to accept All Traffic
. The default TCP/IP
constraint prevented me from creating a database from my local machine otherwise.
answered Feb 9, 2021 at 4:31
PigpocketPigpocket
4295 silver badges21 bronze badges
Это может быть, если пароль не был задан при установке.
Порядок действий для установки/смены пароля root в mysql следующий:
1. Остановить mysql:sudo service mysql stop
2. Запустить сервис со следующими параметрами:sudo mysqld --skip-grant-tables --user=root
Если выдал ошибку то в файле /etc/mysql/mysql.conf.d/mysqld.cnf
в секцию [mysqld]
добавить строчкуskip-grant-tables
и выполнить sudo service mysql restart
3. После этого подключиться к mysql командой:mysql -u root
4. Обновить пароль root’a:
UPDATE mysql.user SET authentication_string=PASSWORD('<новый пароль>'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';
FLUSH PRIVILEGES;
5. И перезапустить сервис:sudo service mysql restart
Если на шаге 2 вы добавляли skip-grant-tables
в /etc/mysql/mysql.conf.d/mysqld.cnf
— удалить эту строчку.
Подробнее в Русскоязычной документации Ubuntu
Пароль по умолчанию пустой.
Возможно, вы неправильно набрали команду. Скопируйте именно эту: mysql -u root -p
. На запрос пароля надо просто нажать Enter.
Попробуйте запустить mysql_secure_installation
.
Если все равно не пускает — поищите пароль в логе: sudo grep 'temporary password' /var/log/mysqld.log
.
Если и этот вариант не подошел — возможно, устанавливаете из какого-то левого репозитория. Удалите sudo apt-get purge mysql*
, выключите левые репозитории и установите заново sudo apt-get install mysql-server
.
Он пишет что пароль не нужен.
Тут два варианта, ИМХО.
1) Вы что-то не так поняли из курса:
2) Составитель курса что-то упустил.
В любом случае или стоило бы сюда ссылку кинуть на этот курс или писать составителю.
По проблеме. Сервер mysql пишет вам, что пользователю ‘root’ доступ закрыт. Как мне кажется, нужно вначале создать бд, применить схему и там создастся пользователь, с данными которого вы подключитесь к бд. А слова «Using password: NO» означает лишь, что пароль и не использовался.
grep 'temporary password' /var/log/mysqld.log
Sort date (newest date)
You may see something like this;
[root@SERVER ~]# grep 'temporary password' /var/log/mysqld.log
2016-01-16T18:07:29.688164Z 1 [Note] A temporary password is generated for root@localhost: O,k5.marHfFu
2016-01-22T13:14:17.974391Z 1 [Note] A temporary password is generated for root@localhost: b5nvIu!jh6ql
2016-01-22T15:35:48.496812Z 1 [Note] A temporary password is generated for root@localhost: (B*=T!uWJ7ws
2016-01-22T15:52:21.088610Z 1 [Note] A temporary password is generated for root@localhost: %tJXK7sytMJV
2016-01-22T16:24:41.384205Z 1 [Note] A temporary password is generated for root@localhost: lslQDvgwr3/S
2016-01-22T22:11:24.772275Z 1 [Note] A temporary password is generated for root@localhost: S4u+J,Rce_0t
[root@SERVER ~]# mysql_secure_installation
Securing the MySQL server deployment.
Enter password for user root:
The existing password for the user account root has expired. Please set a new password.
New password:
Re-enter new password:
If you see it says
... Failed! Error: Your password does not satisfy the current policy requirements
That means your password needs to have a character such as ! . # - etc...
mix characters well, upper case, lower case, ! . , # etc...
New password:
Re-enter new password:
The 'validate_password' plugin is installed on the server.
The subsequent steps will run with the existing configuration
of the plugin.
Using existing password for root.
Estimated strength of the password: 100
Change the password for root ? ((Press y|Y for Yes, any other key for No) : Y
New password:
Re-enter new password:
Estimated strength of the password: 100
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : Y
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.
Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
Success.
Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
Success.
By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y
- Dropping test database...
Success.
- Removing privileges on test database...
Success.
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y
Success.
All done!
[root@SERVER ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 11
Server version: 5.7.10 MySQL Community Server (GPL)
Watch the last 10 minutes of this video, it teaches you how you do it.
I’m trying to install queXS cati app on my Ubuntu desktop and I installed MySQL server and PHP 5 and I cannot login into MySQL server as root without password:
mysql -u root
it says
ERROR 1045(28000) : Access denied for user 'root@localhost' (using password: no )
But it’s okay when I enter mysql -u root -p
I can’t figure out what the problem is.
oerdnj
7,88038 silver badges49 bronze badges
asked Jan 7, 2014 at 10:42
1
Add switch -p
for password based login:
mysql -u root -p
That is the normal behaviour. You set a root password for your database so from now on you can’t access it without password. That is why it reports:
Access denied for user ‘root@localhost’ (using password: no )
Obviously when you give the password with the -p
switch you succeed.
answered Jan 7, 2014 at 10:47
falconerfalconer
14.7k3 gold badges45 silver badges66 bronze badges
In simple words your «root» session does not know the password of the mysql root user.
If you want to make it easier to access your mysql, create a file .my.cnf
in /root/
with these lines:
[mysqladmin]
user = root
password = mysqlrootpassword
[mysql]
user = root
password = mysqlrootpassword
[mysqldump]
user = root
password = mysqlrootpassword
where of course mysqlrootpassword
is your password for mysql’s root password. When you execute mysql it uses this password.
Attend to the safety of this file — give it secure rights, so that nobody on your server can read it!
Zanna♦
68.2k55 gold badges210 silver badges320 bronze badges
answered Jan 16, 2014 at 22:25
2
Login to webmin and under servers, access the mySQLdatabase server.You will then be able to set the (user) password provided you have:
mysql -u (**user**) -p < /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql.
The web gui is easy but to be secure use the terminal.
cheers.
answered Sep 24, 2014 at 12:36
1
This “access denied” error is one of the most common errors you’ll get when working with MySQL.
Learn how to fix it, and see a range of solutions if the suggested fix does not work, in this article.
When you try to connect to a MySQL database on your own computer (called “localhost”), you may get this error:
Access denied for user 'root'@'localhost' (using password: YES)
You might get an error code in front of it:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
You might also get the error with “using password no”:
Access denied for user 'root'@'localhost' (using password: NO)
You’ll see this if you log into MySQL using the command line:
mysql -u root -p
You might also see this if you log in to MySQL using an IDE such as MySQL Workbench. Or even if you use phpMyAdmin.
What does this mean? How can you fix it?
There are a few solutions to this, which I’ve detailed below. Try one, and if it doesn’t work, try another one.
Also a tip for logging in: don’t enter your password in the command line itself, because this will be stored in your command history. Use the -p option, as mentioned above, and then you’ll be prompted to enter the password.
Solution 1: Sudo then Change Password
If you get the “access denied” error, one way to solve it is by using sudo to log in to mysql and change the root password.
Step 1: Open the command line on your system.
Step 2: Open mysql using the sudo command:
sudo mysql
Step 3: Enter the password for this account.
Step 4: Change the auth_plugin to mysql_native_password, and the password for the root account, in a single command:
ALTER USER 'root'@'localhost'
IDENTIFIED WITH mysql_native_password BY 'your_new_password';
Substitute the word your_new_password with a new secure password that you want to use for the root account.
The mysql_native_password method is a traditional method of authentication and will allow you to login.
Step 5: Flush the privileges, which tells the server to refresh the grant tables and apply your changes, with this command:
FLUSH PRIVILEGES;
Step 6: You can confirm that the new authentication method, or plugin, is used by selecting from the mysql.user table.
SELECT user, plugin
FROM mysql.user
Results:
user | plugin |
root | mysql_native_password |
Step 7: Exit the console by pressing CTRL + D or typing exit.
exit;
Step 8: Log in to mysql using the root account and the new password you set, which should work:
mysql -u root -p
You should now be logged in to the root account in mysql.
Solution 2: Edit My.cnf File
If the above solution did not work, you may need to edit the mysql.cnf file to allow for changes to the root account.
Step 1: Open the my.cnf file. This may be stored in:
/etc/my.cnf /etc/mysql/my.cnf
If you’re not sure where it is, search your MySQL installation folder (e.g. on Windows or Mac) for the file.
If you don’t have a my.cnf file (MacOS does not include one by default). You can create one in the /etc folder if you like.
Step 2: Add the word skip-grant-tables under the word [mysqld]. Your file may look like this:
[mysqld] skip-grant-tables
Step 3: Restart the MySQL server.
Step 4: Login to the root account:
mysql -u root -p
Step 5: Flush the privileges, which tells the server to refresh the grant tables and apply your changes, with this command:
FLUSH PRIVILEGES;
Step 6: Set a new password for the account:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_new_password';
Substitute the word your_new_password with a new secure password that you want to use for the root account.
Step 7: Open the my.cnf file you opened in step 1, and remove the line about skip-grant-tables, and save the file.
Step 8: Restart the MySQL server again.
Step 9: Log in to the root account again:
mysql -u root -p
You should now be able to log in successfully with your new password and not get an error.
Conclusion
Either of these two solutions should hopefully solve the problem for you, and you should no longer get the error “Access denied for user ‘root’@’localhost’”.
If you have any questions, feel free to use the comments section below.
Contents
- Server Not Running in Specified Location
- Unable to Connect from a Remote Location
- Authentication Problems
- Problems Exporting Query Results
- Access to the Server, but not to a Database
- Option Files and Environment Variables
- Unable to Connect to a Running Server / Lost root Password
- localhost and %
- See Also
If you are completely new to MariaDB and relational databases, you may want to start with the MariaDB Primer. Also, make sure you understand the connection parameters discussed in the Connecting to MariaDB article.
There are a number of common problems that can occur when connecting to MariaDB.
Server Not Running in Specified Location
If the error you get is something like:
mysql -uname -p ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2 "No such file or directory")
or
mysql -uname -p --port=3307 --protocol=tcp ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (111 "Connection refused")
the server is either not running, or not running on the specified port, socket or pipe. Make sure you are using the correct host, port, pipe, socket and protocol options, or alternatively, see Getting, Installing and Upgrading MariaDB, Starting and Stopping MariaDB or Troubleshooting Installation Issues.
The socket file can be in a non-standard path. In this case, the socket
option is probably written in the my.cnf file. Check that its value is identical in the [mysqld] and [client] sections; if not, the client will look for a socket in a wrong place.
If unsure where the Unix socket file is running, it’s possible to find this out, for example:
netstat -ln | grep mysqld unix 2 [ ACC ] STREAM LISTENING 33209505 /var/run/mysqld/mysqld.sock
Unable to Connect from a Remote Location
Usually, the MariaDB server does not by default accept connections from a remote client or connecting with tcp and a hostname and has to be configured to permit these.
(/my/maria-10.4) ./client/mysql --host=myhost --protocol=tcp --port=3306 test ERROR 2002 (HY000): Can't connect to MySQL server on 'myhost' (115) (/my/maria-10.4) telnet myhost 3306 Trying 192.168.0.11... telnet: connect to address 192.168.0.11: Connection refused (/my/maria-10.4) perror 115 OS error code 115: Operation now in progress
To solve this, see Configuring MariaDB for Remote Client Access
Authentication Problems
Note that from MariaDB 10.4.3, the unix_socket authentication plugin is enabled by default on Unix-like systems. This uses operating system credentials when connecting to MariaDB via the local Unix socket file. See unix_socket authentication plugin for instructions on connecting and on switching to password-based authentication as well as Authentication from MariaDB 10.4 for an overview of the MariaDB 10.4 changes..
Authentication is granted to a particular username/host combination. user1'@'localhost'
, for example, is not the same as user1'@'166.78.144.191'
. See the GRANT article for details on granting permissions.
Passwords are hashed with PASSWORD function. If you have set a password with the SET PASSWORD statement, the PASSWORD function must be used at the same time. For example, SET PASSWORD FOR 'bob'@'%.loc.gov' = PASSWORD('newpass')
rather than just SET PASSWORD FOR 'bob'@'%.loc.gov' = 'newpass'
;
Problems Exporting Query Results
If you can run regular queries, but get an authentication error when running the SELECT … INTO OUTFILE, SELECT … INTO DUMPFILE or LOAD DATA INFILE statements, you do not have permission to write files to the server. This requires the FILE privilege. See the GRANT article.
Access to the Server, but not to a Database
If you can connect to the server, but not to a database, for example:
USE test; ERROR 1044 (42000): Access denied for user 'ian'@'localhost' to database 'test'
or can connect to a particular database, but not another, for example
mysql -u name db1
works but not mysql -u name db2
, you have not been granted permission for the particular database. See the GRANT article.
Option Files and Environment Variables
It’s possible that option files or environment variables may be providing incorrect connection parameters. Check the values provided in any option files read by the client you are using (see mysqld Configuration Files and Groups and the documentation for the particular client you’re using — see Clients and Utilities).
Option files can usually be suppressed with no-defaults
option, for example:
mysqlimport --no-defaults ...
Unable to Connect to a Running Server / Lost root Password
If you are unable to connect to a server, for example because you have lost the root password, you can start the server without using the privilege tables by running the --skip-grant-tables
option, which gives users full access to all tables. You can then run FLUSH PRIVILEGES to resume using the grant tables, followed by SET PASSWORD to change the password for an account.
localhost and %
You may have created a user with something like:
CREATE USER melisa identified by 'password';
This creates a user with the ‘%’ wildcard host.
select user,host from mysql.user where user='melisa'; +--------+------+ | user | host | +--------+------+ | melisa | % | +--------+------+
However, you may still be failing to login from localhost. Some setups create anonymous users, including localhost. So the following records exist in the user table:
select user,host from mysql.user where user='melisa' or user=''; +--------+-----------+ | user | host | +--------+-----------+ | melisa | % | | | localhost | +--------+-----------+
Since you are connecting from localhost, the anonymous credentials, rather than those for the ‘melisa’ user, are used. The solution is either to add a new user specific to localhost, or to remove the anonymous localhost user.
See Also
- CREATE USER
- GRANT
- Authentication from MariaDB 10.4
- Authentication from MariaDB 10 4 video tutorial
I just installed a fresh copy of Ubuntu 10.04.2 LTS on a new machine. I logged into MySQL as root:
david@server1:~$ mysql -u root -p123
I created a new user called repl. I left host blank, so the new user can may have access from any location.
mysql> CREATE USER 'repl' IDENTIFIED BY '123';
Query OK, 0 rows affected (0.00 sec)
I checked the user table to verify the new user repl was properly created.
mysql> select host, user, password from mysql.user;
+-----------+------------------+-------------------------------------------+
| host | user | password |
+-----------+------------------+-------------------------------------------+
| localhost | root | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| server1 | root | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| 127.0.0.1 | root | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| ::1 | root | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| localhost | | |
| server1 | | |
| localhost | debian-sys-maint | *27F00A6BAAE5070BCEF92DF91805028725C30188 |
| % | repl | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
+-----------+------------------+-------------------------------------------+
8 rows in set (0.00 sec)
I then exit, try to login as user repl, but access is denied.
david@server1:~$ mysql -u repl -p123
ERROR 1045 (28000): Access denied for user 'repl'@'localhost' (using password: YES)
david@server1:~$ mysql -urepl -p123
ERROR 1045 (28000): Access denied for user 'repl'@'localhost' (using password: YES)
david@server1:~$
Why is access denied?
asked Mar 28, 2013 at 19:44
1
The reason you could not login as repl@'%'
has to do with MySQL’s user authentication protocol. It does not cover patterns of users as one would believe.
Look at how you tried to logged in
mysql -u repl -p123
Since you did not specify an IP address, mysql assumes host is localhost and tries to connect via the socket file. This is why the error message says Access denied for user 'repl'@'localhost' (using password: YES)
.
One would think repl@'%'
would allow repl@localhost
. According to how MySQL perform user authentication, that will simply never happen. Would doing this help ?
mysql -u repl -p123 -h127.0.0.1
Believe it or not, mysql would attempt repl@localhost
again. Why? The mysql client sees 127.0.0.1
and tries the socket file again.
Try it like this:
mysql -u repl -p123 -h127.0.0.1 --protocol=tcp
This would force the mysql client to user the TCP/IP protocol explicitly. It would then have no choice but to user repl@'%'
.
answered Mar 28, 2013 at 20:40
RolandoMySQLDBARolandoMySQLDBA
177k32 gold badges307 silver badges505 bronze badges
0
You should issue for localhost specific to it.
GRANT USAGE ON *.* TO 'repl'@'localhost' IDENTIFIED BY '123';
And try connecting.
answered Mar 29, 2013 at 5:40
MannojMannoj
1,4992 gold badges14 silver badges34 bronze badges
The problem is these two accounts, added by default.
http://dev.mysql.com/doc/refman/5.5/en/default-privileges.html
+-----------+------------------+-------------------------------------------+
| host | user | password |
+-----------+------------------+-------------------------------------------+
| localhost | | |
| server1 | | |
+-----------+------------------+-------------------------------------------+
A blank user name is a wildcard, so no matter what account you use, it matches this user if MySQL thinks you’re connecting from localhost or your local server name (server1 in this case)… since they have no password, any password you try is wrong. User authentication only tries the first match, so the user you created never gets noticed when your host is localhost (or your server name).
Delete these two from the mysql
.user
table and then FLUSH PRIVILEGES;
.
Or, the mysql_secure_installation script can do this for you, although I tend to prefer doing things manually.
http://dev.mysql.com/doc/refman/5.5/en/mysql-secure-installation.html
answered Mar 30, 2013 at 2:02
Michael — sqlbotMichael — sqlbot
22.2k2 gold badges46 silver badges75 bronze badges
Database may not be configured yet just issue a no-arg call:
mysql <enter>
Server version: xxx
Copyright (c) xxx
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
Mysql [(none)]>
If Mysql must be set a root password, you can use
mysql_secure_installation
answered Apr 18, 2020 at 7:45
Make sure that all fields in the connector are set up with the correct details
host = «localhost»,
user = «CorrectUser»,
passwd = «coRrectPasswd»,
database = «CorreCTDB»
Check for upper and lowercase errors as well — 1045 is not a Syntax error, but has to do with incorrect details in the connector
answered Dec 13, 2019 at 22:59
This could be an issue with corruption of your mysql database. Tables inside mysql database like user table can get corrupt and may cause issued.
Please do a check on those
myisamchk /var/lib/mysql/mysql/ *.MYI
Usually while checking or fixing myisam tables we would like to take mysql down first. If this problem is still not solve please try this out aswell.
If they are corrupt then you can fix them using
myisamchk —silent —force —fast /path/table-name.MYI
Thanks,
Masood
answered Mar 31, 2013 at 17:25
- 59th day of Discord, in the yold 3177
- 3 Comments
Распространенной проблемой при работе с базами данных mysql является потеря пароля рута по разного рода причинам. В этой статье будет описано как без потери данных можно быстро восстановить пароль root в mysql на примере систем Debian/Ubuntu.
Обычно при попытке запуска mysql
такая проблема сопровождается сообщением:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
или
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Для смены пароля суперпользователя в mysql предварительно войдите в сеанс root в консоли:
su
Затем остановите запущенный сервис mysql:
service mysql stop
После команды:
mysqld_safe --skip-grant-tables &
вы сможете войти в mysql без пароля:
mysql -uroot mysql
В сеансе управления mysql введите следующие строки:
UPDATE user SET password=PASSWORD("your_password") WHERE user="root";
FLUSH PRIVILEGES;
EXIT
Где вместо your_password – введите ваш пароль.
После этого остается только запустить mysql:
/etc/init.d/mysql restart