Error 1044 42000 access denied for user zabbix localhost to database zabbix

I want to begin writing queries in MySQL. show grants shows: +--------------------------------------+ | Grants for @localhost | +--------------------------------------+ | GRANT USA...

I want to begin writing queries in MySQL.

show grants shows:

+--------------------------------------+
| Grants for @localhost                |
+--------------------------------------+
| GRANT USAGE ON *.* TO ''@'localhost' |
+--------------------------------------+

I do not have any user-id but when I want to make a user I don’t have privilleges, also I don’t know how to make privileges when even I don’t have one user!

mysql> CREATE USER 'parsa'@'localhost' IDENTIFIED BY 'parsa';
ERROR 1227 (42000): Access denied; you need (at least one of) the CREATE USER pr
ivilege(s) for this operation

I tried to sign in as root:

mysql> mysql -u root -p;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'mysql
 -u root -p' at line 1
mysql> mysql -u root -p root;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'mysql
 -u root -p root' at line 1

the Tin Man's user avatar

the Tin Man

157k41 gold badges211 silver badges300 bronze badges

asked Jan 12, 2012 at 16:44

Nickool's user avatar

12

No, you should run mysql -u root -p in bash, not at the MySQL command-line.
If you are in mysql, you can exit by typing exit.

Kshitij Mittal's user avatar

answered Jan 12, 2012 at 16:58

Nowhy's user avatar

NowhyNowhy

2,8641 gold badge16 silver badges13 bronze badges

8

You may need to set up a root account for your MySQL database:

In the terminal type:

mysqladmin -u root password 'root password goes here'

And then to invoke the MySQL client:

mysql -h localhost -u root -p

the Tin Man's user avatar

the Tin Man

157k41 gold badges211 silver badges300 bronze badges

answered Aug 12, 2012 at 11:16

soleshoe's user avatar

soleshoesoleshoe

1,2052 gold badges11 silver badges16 bronze badges

3

I was brought here by a different problem.
Whenever I tried to login, i got that message because instead of authenticating correctly I logged in as anonymous user. The solution to my problem was:

To see which user you are, and whose permissions you have:

select user(), current_user();

To delete the pesky anonymous user:

drop user ''@'localhost';

answered May 22, 2013 at 8:50

Lefteris E's user avatar

Lefteris ELefteris E

2,7561 gold badge23 silver badges23 bronze badges

4

This is something to do with user permissions. Giving proper grants will solve this issue.

Step [1]: Open terminal and run this command

$ mysql -uroot -p

Output [1]:
This should give you mysql prompt shown below

enter image description here

Step [2]:

mysql> CREATE USER 'parsa'@'localhost' IDENTIFIED BY 'your_password';
mysql> grant all privileges on *.* to 'parsa'@'localhost';

Syntax:

mysql> grant all privileges on `database_name`.`table_name` to 'user_name'@'hostname';

Note:

  • hostname can be IP address, localhost, 127.0.0.1
  • In database_name/table_name, * means all databases
  • In hostname, to specify all hosts use ‘%’

Step [3]: Get out of current mysql prompt by either entering quit / exit command or press Ctrl+D.

Step [4]: Login to your new user

$ mysql -uparsa -pyour_password

Step [5]: Create the database

mysql> create database `database_name`;

answered Jan 23, 2018 at 9:15

theBuzzyCoder's user avatar

theBuzzyCodertheBuzzyCoder

2,5842 gold badges30 silver badges26 bronze badges

5

You might want to try the full login command:

mysql -h host -u root -p 

where host would be 127.0.0.1.

Do this just to make sure cooperation exists.

Using mysql -u root -p allows me to do a a lot of database searching, but refuses any database creation due to a path setting.

the Tin Man's user avatar

the Tin Man

157k41 gold badges211 silver badges300 bronze badges

answered Jun 23, 2012 at 4:46

Ray's user avatar

RayRay

1111 silver badge2 bronze badges

If you are in a MySQL shell, exit it by typing exit, which will return you to the command prompt.

Now start MySQL by using exactly the following command:

sudo mysql -u root -p

If your username is something other than root, replace ‘root’ in the above command with your username:

sudo mysql -u <your-user-name> -p

It will then ask you the MySQL account/password, and your MySQL won’t show any access privilege issue then on.

Adrian Mole's user avatar

Adrian Mole

48.1k140 gold badges49 silver badges78 bronze badges

answered Feb 26, 2014 at 5:49

Kshitij Mittal's user avatar

Kshitij MittalKshitij Mittal

2,6103 gold badges25 silver badges40 bronze badges

2

First, if you are unfamiliar with the command line, try using phpmyadmin from your webbrowser. This will make sure you actually have a mysql database created and a username.

This is how you connect from the command line (bash):

mysql -h hostname -u username -p database_name

For example:

fabio@crunchbang ~ $ mysql -h 127.0.0.1 -u fabio -p fabiodb

fedorqui's user avatar

fedorqui

266k101 gold badges536 silver badges590 bronze badges

answered Dec 22, 2012 at 22:44

fabiog1901's user avatar

fabiog1901fabiog1901

3323 silver badges11 bronze badges

1

connect mysql with sudo & gives permission for the necessary user using,

sudo mysql -u user;
GRANT ALL PRIVILEGES ON database_name.* TO 'user'@'localhost';

answered Apr 20, 2021 at 5:09

Kaumadie Kariyawasam's user avatar

@Nickparsa … you have 2 issues:

1). mysql -uroot -p
should be typed in bash (also known as your terminal) not in MySQL command-line. You fix this error by typing

exit

in your MySQL command-line. Now you are back in your bash/terminal command-line.

2). You have a syntax error:

mysql -uroot -p; 

the semicolon in front of -p needs to go. The correct syntax is:

mysql -uroot -p

type the correct syntax in your bash commandline. Enter a password if you have one set up; else just hit the enter button. You should get a response that is similar to this:
enter image description here

Hope this helps!

1

Most Developers log-in to server(I assume you r having user-name and password for mysql database) then from Bash they switch to mysql> prompt then use the command below(which doesn’t work

mysql -h localhost -u root -p

What needs to be done is use the above command in the bash prompt—> on doing so it will ask for password if given it will take directly to mysql prompt and

then database, table can be created one by one

I faced similar deadlock so sharing the experience

answered Jul 9, 2013 at 14:03

Devrath's user avatar

DevrathDevrath

41.3k52 gold badges192 silver badges287 bronze badges

I had the command correct per above answers, what I missed on was on the Workbench, where we mention ‘Limit Connectivity from Host’ for the user, it defaults to «%» — change this to «localhost» and it connects fine thereafter!

answered Feb 24, 2016 at 15:35

killjoy's user avatar

killjoykilljoy

8801 gold badge11 silver badges16 bronze badges

I’m using roles to confer least privilege on my database application users. I kept getting ‘ERROR 1044 (42000): Access denied for user…’ until I RTFM and discovered I had to give each user a default role(s) in order their account could be authenticated when they logged in.

#create a role
CREATE ROLE 'rolename';

#give necessary privileges to role
GRANT INSERT, UPDATE, DELETE, SELECT ON database.table TO 'rolename';

#create user
CREATE USER 'username'@'host' IDENTIFIED BY 'password';

#give the user a role(s)
GRANT 'rolename' TO 'username'@'host';

#set the user's default otherwise it's ERROR 1044
SET DEFAULT ROLE 'rolename' FOR 'username'@'host';

answered Apr 6, 2022 at 15:08

Clarius's user avatar

ClariusClarius

1,0619 silver badges9 bronze badges

Log inSkip to main contentSkip to sidebar

Uploaded image for project: 'ZABBIX BUGS AND ISSUES'

  1. ZABBIX BUGS AND ISSUES
  2. ZBX-12528

Log In

Export

    XMLWordPrintable

Details


    • Type:


      Incident report

    • Status:

      Closed


    • Priority:


      Trivial

    • Resolution:

      Incomplete


    • Affects Version/s:


      None

    • Fix Version/s:




      3.2.7


    • Component/s:


      None


    • Labels:

      None


    • Environment:

      Cent OS 7

    Attachments

      Activity

        People

          Assignee:

          Unassigned
          Unassigned

          Reporter:

          Seth
          Seth Li

          Votes:
          0

          Vote for this issue

          Watchers:

          1

          Start watching this issue

          Dates

            Created:

            2017 Aug 18 06:16
            Updated:

            2017 Aug 18 09:51
            Resolved:

            2017 Aug 18 09:51

            I developed my website, but many pages that access the database throw the error ‘SQLSTATE 42000 1044 access denied for user’. Can you help!

            That was a recent support ticket received at our Outsourced Technical Support department where we resolve support queries for web hosts.

            Website owners often face this error due to insufficient database privileges, typo errors in username/password, and more.

            So, what’s the solution here? Well, the solution varies depending on the reason for this error.

            Today, let’s discuss the top 5 reasons for this error and how our Dedicated Support Engineers fix it.

            ‘SQLSTATE 42000 1044 access denied for user’ – What this means?

            Before we move on to the reasons for this error, let’s first get an idea of this error.

            Website owners usually face this error when MySQL disallow access to a database.

            For instance, the complete error message looks like this:

            SQLSTATE[42000] [1044] Access denied for user 'test'@'localhost' to database 'test_database'

            This error shows that MySQL denies the user ‘test’@’localhost’ access to the ‘test_database’ database.

            [You don’t have to be a MySQL expert to keep your websites online. Our MySQL admins are available round the clock.]

            ‘SQLSTATE 42000 1044 access denied for user’ – Causes and Fixes

            In our experience managing servers, let’s see the main causes of this error and how our Dedicated Support Engineers fix it.

            1) Incorrect details in website configuration file

            This is the most common reason for the error ‘SQLSTATE 42000 1044 access denied for user‘.

            Database driven websites like WordPress, Drupal, etc. use the details in the website configuration file to connect to the database and fetch data.

            So, typo errors in the database name, database username, password, hostname, database port, etc. can lead to errors.

            How we fix?

            In such cases, our Hosting Engineers recover the database details, and correct them in the website configuration files.

            And, if we can’t recover the password, we reset it and update it in the website configuration file.

            Also, we ensure that the new password adheres to the MySQL password policy.

            For example, in cPanel servers, we reset the database user password from

            cPanel > Databases > MySQL databases > MySQL users > Current users.

            sqlstate 42000 1044 access denied for user

            MySQL databases option in cPanel

            2) Database user doesn’t exist

            Similarly, this error occurs when the user trying to access the database doesn’t exist on the MySQL server.

            Also, this error can sometimes occur when the database user isn’t properly mapped to the database.

            How we fix?

            In such cases, our Support Engineers check whether the database user exists in the MySQL user table.

            If not, we check the user’s requirement and if valid, we create a user with that username.

            In addition to that, we assign this user to the corresponding database.

            For instance, in cPanel servers, we map the database user to the database from cPanel > Databases > MySQL Databases > MySQL users > Add User to Database.

            3) Insufficient database user permissions

            Sometimes, database users don’t have the right privileges to access the database.

            In such cases, website owners see this error ‘SQLSTATE 42000 1044 access denied for user

            How we fix?

            Here, our Hosting Engineers grant the user, proper privileges over the database to correct this problem.

            For example, in cPanel servers, we assign access privileges to a user from here:

            cPanel > MySQL databases > Current databases >Privileged users > Click on the database user

            sqlstate 42000 1044 access denied for user

            How to set database user privileges in cPanel

            On plain servers, we assign the user privileges from command line.

            For example, we use the below command to grant all privileges to the user, ‘test’@’localhost to the database ‘test_database’.

            GRANT ALL PRIVILEGES ON test_database.* TO 'test'@'localhost';

            And, in-order for the changes to reflect, and the privileges to be saved, we use the below command.

            FLUSH PRIVILEGES;

            [Struggling with database user permissions and privileges. Our MySQL experts are here for your help.]

            4) Existence of anonymous users

            Website owners face this error when there exist anonymous users like ‘ ‘@localhost or ‘ ‘ @127.0.0.1.

            That is, when a client connects to the database, MySQL looks through the rows in the user table in a sorted way.

            And, it uses the first row that matches the hostname and username.

            So, here the anonymous user precedes all other users when connecting from localhost.

            How we fix?

            Our Support Engineers check the MySQL user table and remove the anonymous user.

            For instance, we use the below command to remove the anonymous user from MySQL user table.

            delete from user where User=' ';

            5) Missing PDO module

            Website developers see this error when trying to access the database using PDO.

            PDOException: SQLSTATE[42000] [1044] Access denied for user 'test'@'localhost' to database 'test_database' in lock_may_be_available() (line 164 of /home/test/public_html/includes/lock.inc).

            And, this often occurs due to the missing PDO module.

            Most web hosts enable PDO module by default, but some web hosts may disable this module.

            How we fix?

            In such cases, our Hosting Engineers enable the PDO module on the server.

            On cPanel servers, we enable it exclusively for the domain via the PHP Selector option.

            sqlstate 42000 1044 access denied for user

            PHP Selector in cPanel

            [If you suspect missing PHP modules in your server. Our Support Experts can fix it for you within minutes.]

            Conclusion

            In short, ‘SQLSTATE 42000 1044 access denied for user’ error can occur due to insufficient user rights, typo in username/password, and more. Today, we’ve discussed the top 5 reasons for this error and how our Dedicated Support Engineers fix it.

            PREVENT YOUR SERVER FROM CRASHING!

            Never again lose customers to poor server speed! Let us help you.

            Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure.

            SEE SERVER ADMIN PLANS

            var google_conversion_label = «owonCMyG5nEQ0aD71QM»;

            This page will assist you with troubleshooting a MySQL – 1044 “Access Denied” Error Message.

            Troubleshooting the MySQL 1044 “Access Denied” Error

            When you import a database using phpMyAdmin, generally you are importing a text file with a .sql extension.

            Here is a section of code that may be in a .sql database backup. In this example, the database we are trying to import is named Employees.

            -- phpMyAdmin SQL Dump -- version 2.11.9.5 -- https://www.phpmyadmin.net -- -- Host: localhost -- Generation Time: Apr 02, 2010 at 08:01 AM -- Server version: 5.0.81 -- PHP Version: 5.2.6   
            SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";   
            CREATE DATABASE employees;   
            -- --------------------------------------------------------   -- -- Table structure for table `employee_list` --   
            CREATE TABLE 
            IF NOT EXISTS `employee_list` ( `first_name` text NOT NULL, `last_name` text NOT NULL ) 
            ENGINE=MyISAM 
            DEFAULT CHARSET=latin1; 

            When using phpMyAdmin to attempt to import such a file, you will receive an error message similar to:

             Error
             
            SQL query:
              
             CREATE DATABASE employees;
              
             MySQL said: Documentation
             #1044 - Access denied for user 'training'@'localhost' to database 'employees'   

            In this scenario, my cPanel username is Training. Because of cPanel’s database naming conventions, all database names must begin with the cPanel username followed by an “_”. I cannot create a database named Employees, however I can create a database named Training_employees.

            The reason this import failed is because of the following line in the .sql file:

            CREATE DATABASE employees

            Again, I cannot create a database named employees, however I can create a database named Training_employees. If I change the line that says: CREATE DATABASE so that it creates: training_employees instead of employees it will again fail with the following message:  

             Error
              
             SQL query:
              
             CREATE DATABASE training_employees;
              
             MySQL said: Documentation
             #1044 - Access denied for user 'training'@'localhost' to database 'training_employees' 

            When using cPanel, databases must be created within the cPanel itself. To fix the issue, you will need to:

            1. Create the: training_employees database within cPanel
            2. Comment out the: CREATE DATABASE command in my .sql file. To do this, simply change: CREATE DATABASE employees; to — CREATE DATABASE employees; You are simply adding dash dash space to the front of the line to comment it out so that it will not be executed.
            3. Log into phpMyAdmin, access the training_employees database, and then import as normal.

            Описание проблемы:

            Введите http://192.168.34.7/zabbix в браузере и обнаружите следующую ошибку
            Error connecting to database: Access denied for user ‘zabbix’ @ ‘localhost’ to database ‘zabbix’(PASSWORD:YES)

            анализ:
            Из приведенного выше сообщения об ошибке мы можем обнаружить, что разрешения на отображение недостаточно при подключении к базе данных, поэтому мы можем выполнить следующие шаги, чтобы решить эту проблему.
            1. Сначала войдите в msyql на машине, чтобы проверить, удастся ли это.

            Команда входа в систему: mysql -uzabbix -p пароль
            

            Если авторизация не удалась, проверьте, правильный ли пароль для входа в систему и есть ли у пользователя zabbix разрешение на вход в базу данных.
            2. Если описанное выше может быть успешным, но ошибка все еще не устранена, проверьте файл zabbix_server.conf, чтобы проверить правильность настроек в файле.

            3. Если описанное выше по-прежнему не удается, проверьте правильность настроек в zabbix.conf.php, обычно пароль установлен неверно.

            Выполните описанный выше процесс, чтобы решить проблему.

            • Печать

            Страницы: [1]   Вниз

            Тема: zabbix ошибка входа  (Прочитано 15056 раз)

            0 Пользователей и 2 Гостей просматривают эту тему.

            Оффлайн
            vetallkvn

            mysql_connect(): Access denied for user ‘zabbix’@’localhost’ (using password: YES)[/usr/share/zabbix/include/db.inc.php:58]

            Установлена ubuntu 10.04 Все с репов. При попытке входа пишет ошибку. Как поправить?


            Оффлайн
            xeon_greg

            ну четко же пишет в чем проблема, логин , пароль правильные?


            Оффлайн
            Дмитрий Бо

            Проверить можно так: mysql -u zabbix -p


            Оффлайн
            vetallkvn

            Что пишет я прекрасно вижу. Но такого пользователя я не создавал, а он создался сам при установке zabbix. Поэтому и спрашиваю как поправить.


            Оффлайн
            nomeron

            Либо создать в mysql  пользователя zabbix и дать права доступа к базе, либо  http://xxxxx/zabbix/instal.php и в п.4 настроить Configure DB connection.
            Или как вариант скачать виртуальную машину на которой все настроено.


            Оффлайн
            Дмитрий Бо

            Что пишет я прекрасно вижу. Но такого пользователя я не создавал, а он создался сам при установке zabbix. Поэтому и спрашиваю как поправить.

            Если он действительно создался — разрешить ему логиниться с локалхоста и дать права на нужную БД.


            Оффлайн
            vetallkvn

            Спасибо, большое, за помощь.


            Пользователь решил продолжить мысль 10 Октября 2011, 10:25:41:


            Что пишет я прекрасно вижу. Но такого пользователя я не создавал, а он создался сам при установке zabbix. Поэтому и спрашиваю как поправить.

            Если он действительно создался — разрешить ему логиниться с локалхоста и дать права на нужную БД.

            Но в списке пользователей я его не вижу, но при попытке создать такого, система говорит, что он есть уже.


            Пользователь решил продолжить мысль 10 Октября 2011, 10:35:59:


            Либо  http://xxxxx/zabbix/instal.php и в п.4 настроить Configure DB connection.
            Или как вариант скачать виртуальную машину на которой все настроено.

            Таже ошибка про доступ.


            Пользователь решил продолжить мысль 10 Октября 2011, 13:04:25:


            Проверить можно так: mysql -u zabbix -p

            accessdenied for users zabbix@localhost

            « Последнее редактирование: 10 Октября 2011, 13:04:25 от vetallkvn »


            Оффлайн
            xeon_greg

            при установке заббикса у тебя к в консоли спрашивали пароль всего 3 раза
            1  — рутовый пароль к mysql , чтобы создать базу заббикса и юзеров
            2,3 —  пароль и его подтверждение на саму базу для юзера zabbix
            ты помнишь что вводил?


            Пользователь решил продолжить мысль 10 Октября 2011, 13:32:27:


            если не помнишь, какой пароль вводил, заходи в mysql под root  меняй пароль для пользователя zabbix  и в /etc/zabbix/ есть файл конфига базы (точно не помню как называется), там прописаны логин и пароль на базу и измени там пароль на новый

            « Последнее редактирование: 10 Октября 2011, 13:33:47 от xeon_greg »


            Оффлайн
            Дмитрий Бо

            Если он действительно создался — разрешить ему логиниться с локалхоста и дать права на нужную БД.

            Но в списке пользователей я его не вижу, но при попытке создать такого, система говорит, что он есть уже.

            Где ты смотришь список и пытаешься создать?
            На всякий случай уточняю, что в системе свои пользователи, в MySQL — свои. Нас интересует пользователь zabbix из MySQL.


            Оффлайн
            vetallkvn

            при установке заббикса у тебя к в консоли спрашивали пароль всего 3 раза
            1  — рутовый пароль к mysql , чтобы создать базу заббикса и юзеров
            2,3 —  пароль и его подтверждение на саму базу для юзера zabbix
            ты помнишь что вводил?


            Пользователь решил продолжить мысль 10 Октября 2011, 13:32:27:


            если не помнишь, какой пароль вводил, заходи в mysql под root  меняй пароль для пользователя zabbix  и в /etc/zabbix/ есть файл конфига базы (точно не помню как называется), там прописаны логин и пароль на базу и измени там пароль на новый

            Дело на виртуалке, поэтому уже два раза систему окатил и снова поставил. Пароль конечно помню (он везде один), так вот результат один и тот же.


            Оффлайн
            xeon_greg

            Цитата: Дмитрий Бо от 08 Октябрь 2011, 12:42:57

                Проверить можно так: mysql -u zabbix -p

            accessdenied for users zabbix@localhost

            ну если это пробовал и не помогло . значит пароль таки не правильный. заходи под рутом и меняй, заодно проверишь есть ли доступ у zabbix  к базе


            Оффлайн
            vetallkvn

            Откатил на начало. Создал пользователя в ОС, а потом поставил zabbix и все заработало. Спасибо всем.


            Оффлайн
            Дмитрий Бо


            • Печать

            Страницы: [1]   Вверх

            I have created user in mysql 5.1 and given the ALL privilege, details given below,

            mysql> show GRANTS FOR test;
            +-------------------------------------------------------------+
            | Grants for test@%                                           |
            +-------------------------------------------------------------+
            | GRANT ALL PRIVILEGES ON *.* TO 'test'@'%' WITH GRANT OPTION |
            | GRANT ALL PRIVILEGES ON `tt`.* TO 'test'@'%'                |
            +-------------------------------------------------------------+
            2 rows in set (0.00 sec)
            

            But the show databases is not showing the databases on the mysql. It only shows as given below. How can give privilege for other DB s tables as well for the user ‘test’?

            mysql> show databases;
            +--------------------+
            | Database           |
            +--------------------+
            | information_schema |
            | test               |
            +--------------------+
            

            Error while I tried to use the mysql DB as user test:

            mysql> use mysql;
            ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'
            

            asked Jul 4, 2012 at 6:32

            Ahn's user avatar

            AhnAhn

            1613 gold badges5 silver badges13 bronze badges

            6

            in mysql.user table you can specify the different privileges to different users.If you are using query browser you can tools->mysql administrator then go to user and create new user with privileges or change its privileges.

            After you change privileges don’t forget to run «FLUSH PRIVILEGES» otherwise you changes wont affect.

            answered Jul 5, 2012 at 20:23

            matang's user avatar

            matangmatang

            4461 gold badge4 silver badges5 bronze badges

            You’re not logged in as the user test@%, because you have the anonymous user account »@’localhost’ which is matching first. Either drop »@’localhost’ or create ‘test’@’localhost’

            You can also run mysql_secure_installation which will take care of a lot of this for you.

            answered Jul 8, 2012 at 2:44

            Gavin Towey's user avatar


            Linux, Программное обеспечение

            • 05.05.2019
            • 6 040
            • 1
            • 3
            • 3
            • 0

            Ошибка: mysqldump: 1044 Access denied when using LOCK TABLES

            • Содержание статьи
              • Описание
              • Исправляем ошибку
                • Способ (быстрый)
                • Способ (чуть дольше)
              • Комментарии к статье ( 1 шт )
              • Добавить комментарий

            В данной статье пойдет речь об ошибке 1044 Access denied when using LOCK TABLES, которую вы можете получить при попытке создать резервную копию с помощью утилиты mysqldump.

            Описание

            Полностью текст ошибки выглядит следующим образом:

            mysqldump: Got error: 1044: Access denied for user ‘user’@’localhost’ to database ‘database_name’ when using LOCK TABLES

            Как видно из текста ошибки, проблема заключается в том, что пользователь, под которым вы пытаетесь сделать резервную копию, не обладает правами на «LOCK TABLES». Вот что говорит мануал, по этому поводу:

            mysqldump requires at least the SELECT privilege for dumped tables, SHOW VIEW for dumped views, TRIGGER for dumped triggers, and LOCK TABLES if the —single-transaction option is not used. Certain options might require other privileges as noted in the option descriptions.
            For each dumped database, lock all tables to be dumped before dumping them. The tables are locked with READ LOCAL to permit concurrent inserts in the case of MyISAM tables. For transactional tables such as InnoDB, —single-transaction is a much better option than —lock-tables because it does not need to lock the tables at all.
            Because —lock-tables locks tables for each database separately, this option does not guarantee that the tables in the dump file are logically consistent between databases. Tables in different databases may be dumped in completely different states.

            Исправляем ошибку

            Как видно из описания, решить данную проблему можно как минимум двумя разными способами.

            Способ (быстрый)

            Достаточно добавить к mysqldump аргумент --single-transaction, т.е. целиком команда для создания резервной копии будет выглядеть примерно так:

            mysqldump -u user -p --single-transaction database_name > database_backup.sql

            Способ (чуть дольше)

            Необходимо просто выдать тому пользователю (в нашем примере «user»), под которым мы пытаемся создать резервную копию права на «LOCK TABLES» на ту базу(-ы), резервную копию которой(-ых), мы пытаемся создать. Для этого, необходимо подключиться под учетной записью root к MySQL серверу и выдать нужные права. Делается это следующим образом:
            1) Подключаемся к MySQL серверу под учетной записью root

            mysql -u root -p

            2) Выдаем нужные права для пользователя, под которым мы пытаемся сделать резервную копию

            GRANT LOCK TABLES ON database_name.* TO 'user'@'localhost';

            database_name — название базы данных, резервную копию которой вы пытаетесь сделать, необходимо поменять на то, которое подходит для вашего случая.
            user — имя пользователя под которым вы пытаетесь сделать резервную копию, необходимо поменять на то, которое подходит для вашего случая.
            3) Отключаемся

            exit;

            Понравилась статья? Поделить с друзьями:
          • Error 1044 42000 access denied for user root localhost to database mysql
          • Error 1040 webasyst
          • Error 1040 hy000 too many connections
          • Error 1040 08004 too many connections
          • Error 104 steam