MySQL Database (Db) is a database service that runs on a Local Server and on the Web, and it is ideal for both small and large applications and it uses the standard SQL language. MySQL is free to download and use and has the most comprehensive set of advanced features, management tools, and technical support to achieve the highest levels of MySQL scalability, security, reliability, and uptime. The data in a MySQL database are stored in tables. A table is a collection of related data, and it consists of columns and rows, and the Db is useful for storing information categorically. See the following guides on MySQL, how to reset Mysql Root password, how to access MySQL Server from command Prompt, how to create and delete MySQL database, and how to migrate Veeam MsSQL Database to a new MsSQL Server.
Note: It is worth noting that by default, the MySQL server listens for connections only from localhost, which means it can be accessed only by applications running on the same host. But in production environments, you can allow remote access to the MySQL server. In this aspect, you will have to configure the MySQL server to listen on a specific IP address or all IP addresses on the server.
This article shows the steps to resolve connection issues to MySQL Server. See how to install Microsoft SQL Server 2019 and MsSQL Command line tools on Ubuntu Linux, how to uninstall Microsoft SQL Server on Windows 10 and Windows Server, and how to download and install Microsoft SQL Server 2019 Developer Edition and Microsoft SQL Server Management Studio on Windows 10 and Windows Server.
Root Cause: This error is shown in because the application was unable to connect to the MySQL server. There could be a number of reasons. But in my case, it was because the service was stopped and the service was not running. To fix this issue, kindly follow the steps below.
Launch MySQL Workbench to open the home screen. Existing connections are shown when you click the MySQL Connections view from the sidebar. No connections exist for first-time users.
Click on the Server Menu and click on Startup/Shutdown option as shown below
This will open up the Administration -Startup/Shutdown window. Click on Start Server
Accept the UAC.
– Next, you will be required to enter your password in order to start the database server,
– Enter your password and click on OK.
From the Administration -Startup/Shutdown window, you should see the server is now running and on this window, you can stop or take the server offline.
As you can see also the MySQL service is also running and this is all that is needed to resolved this connection issue.
I hope you found this blog post helpful. If you have any questions, please let me know in the comment session. I welcome you to subscribe to my YouTube Channel.
In mysql, Can’t connect to MySQL server on localhost error occurs when mysql is unable to connect to localhost due to the connection issue with mysql or a database configuration issue with mysql. You may see an error Can’t connect to MySQL server on ‘127.0.0.1’ when you connect to ip and unable to connect to localhost 3306. You can’t connect to mysql server on localhost or ip 127.0.0.1 (3306) because either the mysql server may not be started or it may not be running, or the network connection to the mysql server is not established, or the mysql server port is different.
Some times, the application can’t connect to local mysql server or mysql could not connect server may not be running or mysql unable to connect to localhost:3306. The application can’t connect to mysql server on ‘localhost:3306’.
If you are trying to access mysql server from a remote server, the error message “Can’t connect to MySQL server on ‘ localhost ‘” may be displayed in the application. This error occurs if the application is unable to connect to mysql server due to a variety of reasons. In this post, we will see the error message “Can’t connect to MySQL server on ‘ localhost ‘” and how to fix this error.
The error message indicates that there is a problem when connecting to mysql from the calling application. If you identify a connectivity issue, the error message will be fixed.
Can't connect to MySQL server on 'localhost'
Can't connect to local MySQL server through socket '/tmp/mysql.sock'
Root Cause
The error is shown in the application because the application was unable to connect to the mysql server. There could be a number of reasons. This issue is caused by a network failure.
The network failure could be on mysql server side or on the connecting application side. The other reason is that the mysql server is not running on the server. Mysql may be shut down manually, or mysql may not be running on the server machine due to some error.
Solution 1
If the database is running on the local machine, run the ping command with localhost. If the database is running on the remote server, ping the ip of the database server. In this way, we can validate the database server is alive or shutdown or network issue. If the ping does not respond, check that the server is switched on. Check that the network cable is connected correctly.
For local machine
$> ping 127.0.0.1
For remote server
$> ping <ip of the remote server>
$> ping 172.168.1.3
Solution 2
Check that mysql is running or not in the database server. The mysql server may be switched off or stopped due to some critical error. try to restart the mysql server. Check the following command to check whether the mysql server is running or not.
$> netstat -ln | grep mysql
fcc1dd9a70716e73 stream 0 0 fcc1dd9a734eb92b 0 0 0 /tmp/mysqlx.sock
fcc1dd9a707174b3 stream 0 0 fcc1dd9a732f1f7b 0 0 0 /tmp/mysql.sock
The command above shows the network status of the mysql command. The command below will show whether or not the mysql port is listening. The default port number is 3306.
$> netstat -ln | grep 3306
tcp4 0 0 127.0.0.1.3306 127.0.0.1.53815 ESTABLISHED
tcp4 0 0 127.0.0.1.53815 127.0.0.1.3306 ESTABLISHED
tcp4 0 0 127.0.0.1.3306 127.0.0.1.53814 ESTABLISHED
tcp4 0 0 127.0.0.1.53814 127.0.0.1.3306 ESTABLISHED
If the above two commands do not return the expected result, check whether the mysql process is running or not using the following command.
$> ps -ax | grep mysql
113 ?? 4:47.15 /usr/local/mysql/bin/mysqld --user=_mysql --basedir=/usr/local/mysql ... ... ... ... ... ... ... ... --early-plugin-load=keyring_file=keyring_file.so
Solution 3
If mysql is running, check the status of mysql service. If the server appears to be running. Stop the server and restart the service again. If mysql server is hung due to issues such as memory issues, the network issue will be resolved. Use the command below to check the service
$> sudo server mysql status
$> sudo server mysql stop
$> sudo server mysql start
$> sudo /etc/init.d/mysqld status
$> sudo /etc/init.d/mysqld stop
$> sudo /etc/init.d/mysqld start
Solution 4
The mysql server is running without error. Network issues have been resolved and no network issues have been identified. Now connect to mysql server using mysql command. You can also check using the telnet command
$> telnet 172.168.1.3 3306
$> mysql -u root -p -h <host name/ip>
if the port is different from the default port 3306
$> mysql -u root -p -h <host name/ip> -P <port>
Solution 5
If the above command is working successfully and you still see error in mysql. Check out my.cnf file. My.cnf file contains all configurations of mysql. Run the command below to find the location of my.cnf file,
$> mysql --help | grep my.cnf
or just run
$> mysql --help
Open my.cnf file and search for the word bind-address. If there is an existing change as below. If it doesn’t exist, add the line below.
to refer the localhost
bind-address = 127.0.0.1
to refer for any address
bind-address = 0.0.0.0
Solution 6
If all of the above steps are checked and configured, restart the mysql server. All changes will be updated and start with a new configuration. If there is an error in the configuration, mysql will throw an error and will not start the server. Run the command below to check and restart mysql server
$> sudo server mysql status
$> sudo server mysql stop
$> sudo server mysql start
Solution 7
Start the mysql server with install and initialize option and check the mysql server is running or not. if you are using windows, run the mysql server as admin.
C:Program FilesMySQLMySQL Serverbin>mysqld --install
C:Program FilesMySQLMySQL Serverbin>mysqld --initialize
Solution 8
If you are using windows operating system and mysql database is installed newly, then use “MySQL Installer – Community” from the menu to reconfigure. select “mysql server” in the product tab and click the “reconfigure” in the “Quick Action” tab. This will reconfigure the mysql database.
MySQL — система управления базами данных (СУБД) с открытым исходным кодом от компании Oracle. Она была разработана и оптимизирована специально для работы веб-приложений. MySQL является неотъемлемой частью таких веб-сервисов, как Facebook, Twitter, Wikipedia, YouTube и многих других.
Эта статья расскажет, как определять, с чем связаны частые ошибки на сервере MySQL, и устранять их.
Не удаётся подключиться к локальному серверу
Одной из распространённых ошибок подключения клиента к серверу является «ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)».
Эта ошибка означает, что на хосте не запущен сервер MySQL (mysqld
) или вы указали неправильное имя файла сокета Unix или порт TCP/IP при попытке подключения.
Убедитесь, что сервер работает. Проверьте процесс с именем mysqld
на хосте сервера, используя команды ps или grep, как показано ниже.
$ ps xa | grep mysqld | grep -v mysqld
Если эти команды не показывают выходных данных, то сервер БД не работает. Поэтому клиент не может подключиться к нему. Чтобы запустить сервер, выполните команду systemctl.
$ sudo systemctl start mysql #Debian/Ubuntu
$ sudo systemctl start mysqld #RHEL/CentOS/Fedora
Чтобы проверить состояние службы MySQL, используйте следующую команду:
$ sudo systemctl status mysql #Debian/Ubuntu
$ sudo systemctl status mysqld #RHEL/CentOS/Fedora
Если в результате выполнения команды произошла ошибка службы MySQL, вы можете попробовать перезапустить службу и ещё раз проверить её состояние.
$ sudo systemctl restart mysql
$ sudo systemctl status mysql
Если сервер работает (как показано) и вы по-прежнему видите эту ошибку, вам следует проверить, не заблокирован ли порт TCP/IP брандмауэром или любой другой службой блокировки портов.
Для поиска порта, который прослушивается сервером, используйте команду netstat
.
$ sudo netstat -tlpn | grep "mysql"
Ещё одна похожая и часто встречающаяся ошибка подключения — «(2003) Can’t connect to MySQL server on ‘server’ (10061)». Это означает, что в сетевом соединении было отказано.
Следует проверить, работает ли в системе сервер MySQL (смотрите выше) и на тот ли порт вы подключаетесь (как найти порт, можно посмотреть выше).
Похожие частые ошибки, с которыми вы можете столкнуться при попытке подключиться к серверу MySQL:
ERROR 2003: Cannot connect to MySQL server on 'host_name' (111)
ERROR 2002: Cannot connect to local MySQL server through socket '/tmp/mysql.sock' (111)
Ошибки запрета доступа в MySQL
В MySQL учётная запись (УЗ) определяется именем пользователя и клиентским хостом, с которого пользователь может подключиться. УЗ может также иметь данные для аутентификации (например, пароль).
Причин для запрета доступа может быть много. Одна из них связана с учётными записями MySQL, которые сервер разрешает использовать клиентским программам при подключении. Это означает, что имя пользователя, указанное в соединении, может не иметь прав доступа к базе данных.
В MySQL есть возможность создавать учётные записи, позволяющие пользователям клиентских программ подключаться к серверу и получать доступ к данным. Поэтому при ошибке доступа проверьте разрешение УЗ на подключение к серверу через клиентскую программу.
Увидеть разрешённые привилегии учётной записи можно, выполнив в консоли команду SHOW GRANTS
Входим в консоль (пример для Unix, для Windows консоль можно найти в стартовом меню):
В консоли вводим команду:
> SHOW GRANTS FOR 'tecmint'@'localhost';
Дать привилегии конкретному пользователю в БД по IP-адресу можно, используя следующие команды:
> grant all privileges on *.test_db to 'tecmint'@'192.168.0.100';
> flush privileges;
Ошибки запрещённого доступа могут также возникнуть из-за проблем с подключением к MySQL (см. выше).
Потеря соединения с сервером MySQL
С этой ошибкой можно столкнуться по одной из следующих причин:
- плохое сетевое соединение;
- истекло время ожидания соединения;
- размер BLOB больше, чем
max_allowed_packet
.
В первом случае убедитесь, что у вас стабильное сетевое подключение (особенно, если подключаетесь удалённо).
Если проблема с тайм-аутом соединения (особенно при первоначальном соединении MySQL с сервером), увеличьте значение параметра connect_timeout
.
В случае с размером BLOB нужно установить более высокое значение для max_allowed_packet
в файле конфигурации /etc/my.cnf
в разделах [mysqld]
или [client]
как показано ниже.
[mysqld]
connect_timeout=100
max_allowed_packet=500M
Если файл конфигурации недоступен, это значение можно установить с помощью следующей команды.
> SET GLOBAL connect_timeout=100;
> SET GLOBAL max_allowed_packet=524288000;
Слишком много подключений
Эта ошибка означает, что все доступные соединения используются клиентскими программами. Количество соединений (по умолчанию 151) контролируется системной переменной max_connections
. Устранить проблему можно, увеличив значение переменной в файле конфигурации /etc/my.cnf
.
[mysqld]
max_connections=1000
Недостаточно памяти
Если такая ошибка возникла, это может означать, что в MySQL недостаточно памяти для хранения всего результата запроса.
Сначала нужно убедиться, что запрос правильный. Если это так, то нужно выполнить одно из следующих действий:
- если клиент MySQL используется напрямую, запустите его с ключом
--quick switch
, чтобы отключить кешированные результаты; - если вы используете драйвер MyODBC, пользовательский интерфейс (UI) имеет расширенную вкладку с опциями. Отметьте галочкой «Do not cache result» (не кешировать результат).
Также может помочь MySQL Tuner. Это полезный скрипт, который подключается к работающему серверу MySQL и даёт рекомендации по настройке для более высокой производительности.
$ sudo apt-get install mysqltuner #Debian/Ubuntu
$ sudo yum install mysqltuner #RHEL/CentOS/Fedora
$ mysqltuner
MySQL продолжает «падать»
Если такая проблема возникает, необходимо выяснить, заключается она в сервере или в клиенте. Обратите внимание, что многие сбои сервера вызваны повреждёнными файлами данных или индексными файлами.
Вы можете проверить состояние сервера, чтобы определить, как долго он работал.
$ sudo systemctl status mysql #Debian/Ubuntu
$ sudo systemctl status mysqld #RHEL/CentOS/Fedora
Чтобы узнать время безотказной работы сервера, запустите команду mysqladmin
.
$ sudo mysqladmin version -p
Кроме того, можно остановить сервер, сделать отладку MySQL и снова запустить службу. Для отображения статистики процессов MySQL во время выполнения других процессов откройте окно командной строки и введите следующее:
$ sudo mysqladmin -i 5 status
Или
$ sudo mysqladmin -i 5 -r status
Заключение
Самое важное при диагностике — понять, что именно вызвало ошибку. Следующие шаги помогут вам в этом:
- Первый и самый важный шаг — просмотреть журналы MySQL, которые хранятся в каталоге
/var/log/mysql/
. Вы можете использовать утилиты командной строки вродеtail
для чтения файлов журнала. - Если служба MySQL не запускается, проверьте её состояние с помощью
systemctl
. Или используйте командуjournalctl
(с флагом-xe
) в systemd. - Вы также можете проверить файл системного журнала (например,
/var/log/messages
) на предмет обнаружения ошибок. - Попробуйте использовать такие инструменты, как Mytop, glances, top, ps или htop, чтобы проверить, какая программа использует весь ресурс процессора или блокирует машину. Они также помогут определить нехватку памяти, дискового пространства, файловых дескрипторов или какого-либо другого важного ресурса.
- Если проблема в каком-либо процессе, можно попытаться его принудительно остановить, а затем запустить (при необходимости).
- Если вы уверены, что проблемы именно на стороне сервера, можете выполнить команды:
mysqladmin -u root ping
илиmysqladmin -u root processlist
, чтобы получить от него ответ. - Если при подключении проблема не связана с сервером, проверьте, нормально ли работает клиент. Попробуйте получить какие-либо его выходные данные для устранения неполадок.
Перевод статьи «Useful Tips to Troubleshoot Common Errors in MySQL»
Я недавно установил MySQL 5 на Windows 2003 и попытался настроить экземпляр. Все работало нормально, пока я не добрался до «применения настроек безопасности», после чего он дал мне вышеуказанную ошибку (Can't connect to MySQL server on 'localhost' (10061)
).
У меня есть исключение порта 3306 в моем брандмауэре для «MySQL Server».
13217
18
18 ответов:
вам, вероятно, придется предоставить привилегии «localhost» в таблице пользователю. Смотрите
'GRANT'
синтаксис документации. Вот пример (из какого источника).«предоставить все привилегии на %s.* для’%s’@ ‘localhost’, идентифицированного ‘%s'»;
Это самая распространенная проблема с MySQL.
кроме этого, вы можете проверить, что пользователь, которого вы определили для создания вашего экземпляра, имеет полные права, иначе пользователь не может предоставлять привилегии.
кроме того, убедитесь, что служба mysql запущена.
убедитесь, что у вас не включен сторонний брандмауэр или Служба безопасности Интернета.
кроме того, есть несколько страниц форума MySQL, посвященных этому:
http://forums.mysql.com/read.php?11,9293, 9609#msg-9609попробуйте прочитать это.
получил эту ошибку на Windows, потому что мой mysqld.exe не работал.
побежал «C:Program FilesMySQLMySQL Server 5.5binmysqld» —install из командной строки, чтобы добавить его в мои службы, запустите службы.msc (start -> run), нашел службу MySQL и запустил ее.
не пришлось беспокоиться об этом оттуда.
чтобы решить эту проблему:
- идем в Диспетчер задач
- выберите вкладку Услуги
- найти службу MySql
- под управлением
вот и все.
У меня были трудности с доступом к MySQL при подключении через соединение localhost на стандартном порту 3306, который отлично работал, когда я установил и настроил его для предыдущих классов, которые я взял в MySQL и Java. Я получал ошибки, такие как» ошибка 2003 «и»не удается подключиться к серверу MySql на localhost (10061)». Я попытался подключиться как из MySQL Workbench (5.2.35 CE), так и из Netbeans (7.2). Я использую Windows 7 64 bit professional.
Я попытался ввести службы.msc в самом начале окно поиска меню, которое открыло диалоговое окно службы, чтобы показать все службы, установленные в windows. Я прокрутил вниз к MySQL и запустил эту службу. Последующие попытки подключиться к MySQL из MySQL WorkBench и из командной строки завершились успешно.
убедитесь, что ваш хост-файл windows (расположен по адресу
c://windows/system32/drivers/etc.host
) имеет следующие линии. Если нет, добавьте его в конце127.0.0.1 localhost ::1 localhost
иногда mysql не может вызвать Windows для принудительного запуска служб хоста, если брандмауэр блокирует его, поэтому запустите его вручную
win+выполнить>>услуги.msc, выберите «MySQL_xx», где» xx » — это имя, которое вы назначили службам хоста MySQL во время установки. Нажмите на кнопку «начать», чтобы начать с гиперссылки появился на левой стороне.
Я попробовал решение Kuzhichamadam Inn и обнаружил, что необходимо внести небольшое изменение.
MYSQL57 был сетевой службой. Я пробовал это неоднократно без успеха. Когда я открыл службы.msc я нашел другой сервис для localhost: MySQL. Я начал это с помощью процесса ниже, и это сработало.
выполнить > Services.МСЦ > правой кнопкой мыши по MySQL > «свойства» >в начало
пресс клавиша Windows + R
напишите » услуги.МСЦ» введите
ищите «MYSQL56»
напишите нажмите на нее и Запустите сервис
для локального подключения к
MySql
, вам не нужно настраивать брандмауэр с входящими правилами. Но даже если вы уже установкаiptables
разрешитьTCP
входящий порт 3306 и предоставить привилегию пользователю для доступа к БД локально, вы, возможно, придется настроить адрес привязки в вашемmy.cnf
файл, отредактируйте там адрес по умолчанию и поместите IP-адрес сервера, на котором работаетMySql
сервис.
run > services.msc > rightclick MySQL57 > properties >set start type option to automatic
после перезагрузки компьютера
At cmd
cd: C: C :> cd "C:Program FilesMySQLMySQL Server 5.7bin"
станет
C:Program FilesMySQLMySQL Server 5.7bin>
тип
mysql -u root -p
ie
C:Program FilesMySQLMySQL Server 5.7bin> mysql -u root -p
введите пароль:
****
вот и все
это приведет к
mysql>
Я получил эту ошибку, когда у меня закончилось место на моем диске.
на выполнить тип
services.msc.
проверьте, работают ли Службы MySQL. Если нет, запустите его вручную. После его запуска введитеMySQL Show
для тестирования сервиса.
другая возможность:
существует два способа подключения клиента MySQL к серверу: через TCP/IP или с помощью сокетов. Возможно, у вас есть сервер MySQL, настроенный для поддержки сокетных соединений, но не сетевых соединений.
ничего не делать просто «сбросить по умолчанию» настройки брандмауэра он начнет работать.
Я прочитал много решений, но ничего не работало должным образом, поэтому, наконец, я сбросил настройки брандмауэра, которые работали.
наконец-то решил эту проблему.. попробуйте запустить mysql в xammp. Флажок mysql в xammp должен быть снят. тогда начинай. после этого вы можете открыть mysql, и теперь он будет подключаться к localhost
отредактируйте свой ‘ my-default.ini ‘ файл (по умолчанию он поставляется с комментариями свойств), как показано ниже ie.
basedir=D:/D_Drive/mysql-5.6.20-win32 datadir=D:/D_Drive/mysql-5.6.20-win32/data port=8888
есть очень хорошая статья представит, что диктует команды для создания пользователя, просматривать таблицы и т. д. т. е.
http://www.ntu.edu.sg/home/ehchua/programming/sql/MySQL_HowTo.html#zz-3.1
Так как я боролся и нашел немного другой ответ вот он:
недавно я переключил локальный сервер (интрасеть) на своем новом рабочем месте. Установлена лампа; Debian, Apache, MySql, PHP. Пользователи на работе подключают сервер с помощью имени хоста, позволяет называть его «intaserv». Я настроил все, получил его работу, но не смог подключить Мой MySql удаленно, что бы я ни делал.
Я нашел свой ответ после бесконечных попыток, хотя. вы можете иметь только один привязать-адрес и он не может быть имя хоста, в моем случае «интранет».
Это должен быть IP-адрес, например. «bind-address=192.168.0.50».
Anglais:
- нажмите клавишу windows + R
- пишем «Services.msc » затем нажмите Enter
- поиск MySQL57 и щелкните правой кнопкой мыши
- нажмите на кнопку запустить службу
Français:
- Appuyez sur la touche Windows + R
- Écrire «услуги.msc » Puis appuyez sur Entrée
- Recherchez MySQL57 et clic droit
- Cliquez sur rédémarrer
- щелкните правой кнопкой мыши на моем компьютере
- нажмите на управление
- перейти к службам и приложениям
- выберите службы и найдите MySQL service
- Правой Кнопкой Мыши на MySQL и выберите Start