Mysql ошибка не могу подключиться к серверу

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»

I installed MySQL using mysql-installer-5.5.20.0.msi on Windows 7.
From the cmd window, I run «mysqlshow -u root -p». It asked for a password, then returned this error: «Can’t connect to MySQL server on ‘localhost’ (10061)» This is a bad indication of partially failed/successful installation.

After reading the page, http://dev.mysql.com/doc/refman/5.5/en/windows-troubleshooting.html, it told me to find an error log (.err) in C:Program FilesMySQLMySQL Server 5.5data. The directory exists but there is no log file.

I have a feeling this is related to the tight security of Windows 7, especially when installing a Unix based software. And yes, I am the Administrator on my PC.

Any help or suggestions is appreciated. And I can return a favor by answering Java and SQL query questions.

asked Jun 5, 2012 at 6:31

The Original Android's user avatar

12

Please Try the following steps:

  1. c:mysqlbin>mysqld —install
  2. c:mysqlbin>mysqld —initialize

then press «Windows key + R» write «services.msc«, run as admin

start MySQL service.

K. Yen's user avatar

K. Yen

1932 silver badges14 bronze badges

answered Jan 19, 2016 at 7:21

maheshDeshmukh's user avatar

5

I also faced the same issue and resolved it by below setups:

  1. Check the MYSQL service in the windows service. If it is there and not running then start it. It will solve your problem.

    You can find the services window by navigating to windows Start menu and typing ‘services’ in the search bar. Select the ‘Services’ option with the cogs next to it (not the executable file) and the below window will appear. Scroll down to find ‘MySql (version)’. When you select MySql you should see an option in the left pane that says ‘Start the service’. Click this and a dialogue should appear to indicate Windows is attempting to start the service. Once started the left pane will now give you the option to stop, pause and restart the service and you will now be able to connect to your MySql from the windows cmd line.

enter image description here

  1. If MYSQL service is not present in windows service then follow below setups.

    a. Open cmd as administrator.

    b. cd to C:Program Files (x86)MySQLMySQL Server 5.6bin

    c. Run the command:
    C:Program Files (x86)MySQLMySQL Server 5.6bin>mysqld.exe —install

    d. Check the MySql in the windows service, And if it is not running, Start it by clicking on the service.

    e. If your using XAMMP . Start MySQL at the XAMMP control Panel.


Burkely91's user avatar

answered Apr 29, 2017 at 13:23

Programming-Lover's user avatar

5

this issue is very to solve by windows server users

  1. go to this path
    C:Program FilesMySQLMySQL Server 5.1bin

  2. run this tool «MySQLInstanceConfig.exe»

and config the instatnce again and problem solved

answered Nov 18, 2013 at 9:05

shay lami's user avatar

shay lamishay lami

3943 silver badges2 bronze badges

4

The simple solution that worked for me is: change localhost to 127.0.0.1 in your database.yml or in your script if writing one.

doubleDown's user avatar

doubleDown

7,9781 gold badge32 silver badges48 bronze badges

answered Oct 27, 2012 at 3:16

Keramat's user avatar

KeramatKeramat

1211 silver badge3 bronze badges

1

Here, you need to make sure that the MySQL service is running is Windows. It might be possible that your MySQL service is not running cuurrently.

  1. Open Services window by pressing Windows+R and entering services.msc
  2. Find out MySQL right click and select start.

It works.

7bStan's user avatar

7bStan

1601 gold badge4 silver badges13 bronze badges

answered Apr 11, 2020 at 8:16

Arianne Hernandez's user avatar

1

I had this error — stupid mistake was, I was using -p3307 to specify port, whereas I should have used -P3307, i.e. capital P. Small ‘p’ is for password arg :)

answered Aug 26, 2014 at 13:15

Frederik Struck-Schøning's user avatar

In Windows 7

  1. press Windows+R it opens Run
  2. Enter services.msc
  3. Find out mysql right click and start
  4. if mysql was not found
    1. Run cmd as administrator
    2. goto C:Program Files (x86)MySQLMySQL Server 5.6bin directory(to go back use cd..) and type mysqld.exe --install
  5. follow step 3

That’s all

barbsan's user avatar

barbsan

3,41811 gold badges21 silver badges28 bronze badges

answered Jun 10, 2017 at 18:13

nikhil's user avatar

nikhilnikhil

811 silver badge1 bronze badge

2

I solved this by adding the following arguments to the command line string:

mysql --user username --password password --host localhost --port 3306 databasename < "system path to .sql file"

Without the --host and --port arguments, especially if you change the port to let’s say 3307, which is a non default value, will cause this error.

barbsan's user avatar

barbsan

3,41811 gold badges21 silver badges28 bronze badges

answered Jan 14, 2018 at 9:59

Charles Robertson's user avatar

2

I got this error in command prompt when I tried to open MySQL from cmd «mysql -u root -p»
Can’t connect to MySQL server on ‘localhost:3306’ (10061)
It was because I changed my port during the installation of MySQL community server as I had XAMPP server installed and running as well which was not allowing me to use the port 3306.
So basically I had 2 MySQL servers installed in my system.

  1. MySQL community server.
  2. XAMPP server.

If anyone had this same issue this is how I fixed it.
Step 1: Reconfigure MySQL server to port 3306
Step 2: Reconfigure XAMPP to use a different port other than 3306

Note: Stop the XAMPP server before following the steps.

Step 1: Reconfigure MySQL server to port 3306

  1. Click Start and open MySql installer — community
  2. Click on reconfigure button in front of MySql server
  3. Type 3306 in port. Execute and complete the installation.
    enter image description here

Step 2: Reconfigure XAMPP to use a different port other than 3306

  1. Open XAMPP and change the port other than 3306 in two files
    my.ini under MySQL
    and php.ini under Apache
    enter image description here

Now everything seems to be working fine for me. I was able to get into MySQL community server from cmd and I can use XAMPP server as well.

Dharman's user avatar

Dharman

30.4k22 gold badges84 silver badges132 bronze badges

answered Aug 11, 2021 at 15:16

mrsagar105's user avatar

mrsagar105mrsagar105

1762 silver badges6 bronze badges

I have Windows 8.1 and I too had this problem. My teacher told me it was probably because my MySQL server had stopped running. She told me to go into the Computer Management utility (right click the lower-most left hand corner of the screen on Windows 8.1 to access Computer Management). Then under Services and Applications, open up the Services and find MySQL. You should be able to right-click on MySQL and restart it.

answered Jan 26, 2015 at 7:04

Avilio's user avatar

AvilioAvilio

5716 silver badges4 bronze badges

  1. In Start Menu, search for «mysql». Among the results, you should see the «MySQL Installer — Community». Run it.

  2. MySQL Installer window will show up as shown below. Find «MySQL Server» under Product and click on «Reconfigure» link.

  3. The MySQL Installer will show up (same one you used for the first MySQL Server installation). Go through all the steps.

  4. After the MySQL Installer was finished, I started the MySQL service again. This time, the «Startup Message Log» on The MySQL Notifier was showing that the server started successfully:

MySQL : How to fix Can’t connect to MySQL server on localhost 10061 error

answered Aug 30, 2018 at 15:30

nishith kumar's user avatar

This is the easiest solution and worked for me.

  • Go to where you downloaded
    «mysql-installer-web-community-8.0.19.0.msi», file for installing
    mysql.
  • Run this by double clicking on it. (No need to uninstall anything)
  • Click on «reconfigure» beside the MySql server.
  • Agree everything which comes in middle, provide password for root where asked.
  • Finish. That’s it you’re good to go.

answered May 19, 2020 at 6:11

Rama Krishna Reddy's user avatar

2

For the 5.7 version, I had the same problem and a simple fix did the trick. As Installed the workbench 5.7 there was another «software» of sorts called the «MySQL Installer Community». I ran this and ran the «Reconfigure» for the MySQL server. It took about a minute and the problem was no longer there.

Hope it works!.(Keep in mind i was using the 5.7 version)

answered Feb 27, 2017 at 22:08

user0221441's user avatar

user0221441user0221441

3684 silver badges11 bronze badges

Just turn off the firewall and remove the instance configuration. Add a new instance for the server.![Disable Firewall][1]
Give he port number correctly as 3306 as default

answered Jul 25, 2013 at 17:41

Prabhakar's user avatar

Solution 1:

For 32bit:
Run «mysql.exe» from: C:Program FilesMySQLMySQL Server 5.6bin

For 64bit:
Run «MySQLInstanceConfig.exe» from: C:Program FilesMySQLMySQL Server 5.6bin

Solution 2:

The error (2002) Can’t connect to … normally means that there is no
MySQL server running on the system or that you are using an incorrect
Unix socket file name or TCP/IP port number when trying to connect to
the server. You should also check that the TCP/IP port you are using
has not been blocked by a firewall or port blocking service.

The error (2003) Can’t connect to MySQL server on ‘server’ (10061)
indicates that the network connection has been refused. You should
check that there is a MySQL server running, that it has network
connections enabled, and that the network port you specified is the
one configured on the server.

Source: http://dev.mysql.com/doc/refman/5.6/en/starting-server.html
Visit it for more information.

answered Nov 12, 2014 at 17:35

Muhammad Rehan Qadri's user avatar

1

I had the same error. I resolved in this way

Go to start- MySQL Installer-community and run again the installer as a re-configuration(you will be asked so).

Once asked if you want make MySQL instance to run as a Windows service, check the box.

In case would do not work, try unistalling and installing again, and check the box to run MySQL as Windows service.

answered Jun 8, 2016 at 16:28

Carmine Tambascia's user avatar

3

From what I’ve gathered this means the mysql service (mysqld) isn’t running.

  • First make sure it is installed as a windows service : Run

"C:Program FilesMySQLMySQL Server 5.5binmysqld" --install

from the command line.

  • Next, start it up :

services.msc > MySQL > start

If it fails to restart, then you can follow these steps :

  • open the command line as an administrator :
    cmd.exe > open as administrator
  • run "C:Program FilesMySQLMySQL Server 5.7binmysqld" --verbose

it should fail and put the error log in a directory named data under C:Program FilesMySQLMysSQL Server 5.7 . If it fails to create data for some reason, do it manually under that directory and try again. If you can figure out what’s missing from what’s in that log, then good, you’re done.

If you’ve still got no luck, this is how I did it :

  • goto C:ProgramDataMySQL and copy the file named my.ini to C:Windows

  • try to start the service again from the command line :
    "C:Program FilesMySQLMySQL Server 5.7binmysqld" --verbose

If it doesn’t display any error, than the service startup was successfull. If it’s still not working, than delete that my.ini you just copied from C:Windows and start the service from the command line once again.

it should work now

answered Oct 31, 2016 at 18:37

Paul Mira's user avatar

Paul MiraPaul Mira

711 silver badge3 bronze badges

if it is showing error 2003 (HY000): Can’t connect to MySQL server on localhost (10061) than

  1. Search services.msc in run
  2. goto mysql properties
  3. copy the mysql service name
  4. start cmd as administrator
  5. write: net start mysqlservicename .i.e mysql57 or etc it will show mysql is starting.

Christopher Moore's user avatar

answered Apr 7, 2017 at 8:31

neo.abi1000's user avatar

For me, three steps solved this problem on windows 10:

I downloaded MySQL server community edition zip and extracted it in the D drive. After that I went to bin folder and did cmd on that folder. I followed the below steps and all works:

D:toolsmysql-8.0.17-winx64bin>mysqld -install
Service successfully installed.

D:toolsmysql-8.0.17-winx64bin>mysqld --initialize
D:toolsmysql-8.0.17-winx64bin>net start mysql
The MySQL service is starting...
The MySQL service was started successfully.

Kevin's user avatar

Kevin

16.2k8 gold badges57 silver badges74 bronze badges

answered Aug 20, 2019 at 11:46

vikash chauhan's user avatar

I too had this problem, its easy to solve:

Go to Control panel — System and maintenance — System — Advanced system settings — Environment variables — System variables — path — click edit — add

"c:xamppmysqlbin" — it should look like this :

Program Files (x86)NVIDIA CorporationPhysXCommon;C:Program Files (x86)InteliCLS Client;C:Program FilesInteliCLS Client;%SystemRoot%system32;%SystemRoot%;%SystemRoot%System32Wbem;%SYSTEMROOT%System32WindowsPowerShellv1.0;C:Program FilesIntelIntel(R) Management Engine ComponentsDAL;C:Program FilesIntelIntel(R) Management Engine ComponentsIPT;C:Program Files (x86)IntelIntel(R) Management Engine ComponentsDAL;C:Program Files (x86)IntelIntel(R) Management Engine ComponentsIPT;C:Program Files (x86)IntelOpenCL SDK2.0binx86;C:Program Files (x86)IntelOpenCL SDK2.0binx64;C:Program Files (x86)Windows LiveShared;C:Program Files (x86)QuickTime AlternativeQTSystem;c:xamppmysqlbin

And don’t forget to start MySQL from control panel of Xampp.

Valentin Despa's user avatar

answered Jun 3, 2013 at 8:31

Siddharth Patel's user avatar

Siddharth PatelSiddharth Patel

1931 gold badge2 silver badges15 bronze badges

1

I found the same error re occurring even after I tried all the above solutions given above. I had even tried version 5.7 and few more. Guys don’t waste your time trying to fix it. Rather install version 5.5. It’s working perfectly fine without any unnecessary error.

answered Jul 1, 2018 at 16:48

Shruti's user avatar

Well in my case I just opened services.msc using run and restarted 2 of the services related to mysql and it worked!

answered Sep 21, 2018 at 7:28

Aditya's user avatar

In case of Xampp Installation.

Go to your xampp installation and mysql folder, for my case: C:xamppmysql

Run the file «resetroot.bat» from cmd or explorer.

My installation started working!!!

answered Nov 23, 2018 at 8:52

Sachin's user avatar

The solution that fixed the issue was using the following steps:

In Start Menu, search for «mysql». Among the results, you should see the «MySQL Installer — Community». Run it.
MySQL Installer window will show up as shown below. Find «MySQL Server» under Product and click on «Reconfigure» link.
MySQL Installer Community

The MySQL Installer will show up (same one you used for the first MySQL Server installation). Go through all the steps.

After the MySQL Installer was finished, I started the MySQL service again.

answered Dec 16, 2018 at 16:49

ankit715's user avatar

Don’t do useless stuff like reconfigure, stop MySQL and start MySQL in service.
Just reinstall the MYSQL server and again install it in your system.
Remember only uninstall MySQL server and nothing else.
All the problem will be solve automatically

answered Aug 6, 2019 at 16:32

VINEET KUMAR's user avatar

The main reason for this kind of error is you might have uninstalled Mysql server application. Install it and then give it a go.

answered Aug 26, 2019 at 9:28

Prateek Gowda's user avatar

I had the same issue and basically resolved it by pointing to a specific port number that my MySQL server was running on. Below is the command. Please edit the code to fit your case i.e your port number,your mysql server username,your password.

    mysql -u root -pYourMysqlRootPassword -P3307 

answered Oct 11, 2019 at 11:35

Tom Munyiri's user avatar

Tom MunyiriTom Munyiri

1562 silver badges5 bronze badges

  1. Create the temp folder c:/mysqltmp
  2. In my.ini file under [mysqld] add the line
    tmpdir=c:/mysqltmp
  3. Add full privileges to user NETWORK SERVICE for «C:ProgramDataMySQLMySQL Server X.YDataibdata1″ file
  4. Start service

These are steps for the same problem with MySQL5.7 and MySQL8.0 on Windows 10

answered Oct 11, 2019 at 21:03

nesomis's user avatar

MySQL — система управления базами данных (СУБД). С её помощью можно управлять базами данных (БД) на сервере. 

В зависимости от операционной системы, на сервере может быть установлена СУБД MySQL или MariaDB — их функционал сильно похож, и для работы разницы, как правило, нет. 

В данной статье рассмотрим, с какими проблемами вы можете столкнуться при работе с MySQL и как их решить. 

  • Создание базы через ISPmanager
    • Раздела «Базы данных» нет в меню
  • Не подходит пароль к серверу баз данных
  • Где искать ошибки?
    • Перечень возможных проблем
      • Table ‘./site/content’ is marked as crashed and should be repaired
      • mysql_connect() [function.mysql-connect]: Access denied for user ‘user_xxx’@’localhost’ (using password: YES)
      • Не удалось подключиться к базе данных
      • В панели ISPmanager не удается создать базу данных, ошибка «Недостаточно данных»
      • MySQL не запускается ни в сервисах, ни через консоль
      • Решение проблем с кодировками MySQL
  • Русификация MySQL

Создание базы через ISPmanager

Панель управления ISPmanager значительно упрощает управление СУБД и базами данных. На корректно работающем VDS создание базы займет не больше 5 минут.

В левом меню ISPmanager переходим в раздел Базы данных и нажимаем Создать базу данных.

Заполняем необходимые поля: имя БД, владелец БД (должен совпадать с владельцем сайта), сервер БД, кодировка БД, после чего создаем нового пользователя БД (либо выбираем существующего) и задаем пароль. Рекомендуем создавать сложные пароли. 

Подробнее о создании Базы данных можно узнать в отдельной статье.

Теперь немного о тех местах, где могут возникнуть сложности.

Раздела «Базы данных» нет в меню

Есть 2 возможных варианта решения проблемы:

1. На сервере не запущен сервер баз данных MySQL

Проверить, активен ли сервис, вы можете в разделе Мониторинг и журналы панели ISPmanager. Попробуйте запустить или перезапустить службу mariadb (в ОС CentOS и Debian) или mysql (в ОС Ubuntu) с помощью кнопок в панели.

Если не помогло, перезапустите из консоли командой systemctl restart mysql для Ubuntu/Debian или командой systemctl restart mariadb для Centos 7.

2. Проблемы с подключением к базе данных

Перейдите в раздел Серверы БД, двойным кликом откройте свойства и нажмите Сохранить, ничего не меняя. Это принудительно обновит информацию о MySQL в панели управления. После этого обновите страницу — раздел Базы данных должен появиться.

Не подходит пароль к серверу баз данных

Случается так, что пароль root от MySQL-сервера утерян и надо установить новый. Делается следующим образом:

Останавливаем MySQL-сервер:

В Debian/Ubuntu:

# systemctl stop mysql

В CentOS 7:

# systemctl stop mariadb

или

# systemctl stop mysqld

Запускаем его без проверки таблиц прав:

# mysqld_safe --skip-grant-tables &

Заходим root’ом без пароля:

# mysql -uroot

Меняем пароль:

# use mysql;

MySQL < 5.7

# UPDATE user SET Password=PASSWORD("new_password") WHERE User='root';

MySQL => 5.7

# UPDATE user SET authentication_string=PASSWORD("new_password") WHERE User='root';

Проверить версию MySQL можно с помощью команды:

# mysql –version

или

# mariadb –version

Продолжаем для всех версий

# FLUSH PRIVILEGES;

В Debian/Ubuntu:

# systemctl restart mysql

В Centos 7:

# systemctl restart mariadb

или

# systemctl restart mysqld

Авторизуемся как root с паролем new_password

# mysql -uroot -p

После вводим новый пароль.

Где искать ошибки?

MySQL — свободная реляционная система управления базами данных. Поиск проблем с сервисом лучше всего начинать с изучения логов. Для этого необходимо подключиться на сервер по SSH. Их расположение разнится в зависимости от используемой файловой системы. В конфигурационном файле my.cnf нужно искать строки log и log-error, чтобы определить, где находятся логи. Также можно воспользоваться mysql запросом:

show variables like '%log%';

Если логирование не включено, сделать это можно следующим образом. Зайти в файл:

/etc/my.cnf   #Centos
/etc/mysql/my.cnf  #Debian
/etc/mysql/mysql.conf.d/mysql.cnf #Ubuntu

Расположение конфигурационного файла может отличаться в зависимости от дистрибутива или CMS.

И в секцию [mysqld] добавить строку:

log-error=/var/log/mysql-errors.log

Выйти из файла, выполнить команды:

touch /var/log/mysql-errors.log
chown mysql:mysql /var/log/mysql*
chmod 640 /var/log/mysql*

Следующая команда включит просмотр созданного лога в режиме реального времени(tail –f) и оставить его в фоне(&) что бы можно было параллельно запускать другие команды:

tail –f /var/log/mysql-errors.log &

Данная команда позволяет проводить действия с БД или сайтов и одновременно смотреть на ошибки в логе. Чтобы остановить команду, нажмите Ctrl+C.

Перечень возможных проблем

Table ‘./site/content’ is marked as crashed and should be repaired

Такое сообщение может появиться в логах или на сайте. Оно означает, что таблица одной из БД «побилась» и требуется ее восстановление. Необходимо подключится на сервер по SSH, выполнить команду, которая проверит все базы данных на предмет ошибок

mysqlcheck --repair --analyze --optimize --all-databases -u<USER> –p<PASSWORD>

Если эта команда выдаёт ошибку, вставьте ключи раздельно:

mysqlcheck --repair --all-databases -u<USER> –p<PASSWORD>
mysqlcheck --analyze --all-databases -u<USER> –p<PASSWORD>
mysqlcheck --optimize --all-databases -u<USER> –p<PASSWORD>

где

  • <USER> — имя пользователя базы данных или root,
  • <PASSWORD> — заменить на пароль пользователя или root от MySQL (его можно посмотреть в ISPmanager — Базы данных — Серверы БД — двойной клик на сервер MySQL для просмотра пароля root (либо Базы данных — двойной клик на нужную базу данных и двойной клик на нужного пользователя).

Либо можно выполнить исправление конкретной базы данных:

mysqlcheck --repair --analyze --optimize <DB> -u<USER> -p<PASSWORD>

где

  • <USER> — имя пользователя базы данных или root,
  • <PASSWORD> — заменить на пароль пользователя или root от MySQL (его можно посмотреть в ISPmanager — Базы данных — Серверы БД — двойной клик на сервер MySQL для просмотра пароля root (либо Базы данных — двойной клик на нужную базу данных и двойной клик на нужного пользователя),
  • <BD> — база данных, которой требуется исправление.

mysql_connect() [function.mysql-connect]: Access denied for user ‘user_xxx’@’localhost’ (using password: YES)

Чаще всего связана с тем, что в настройках сайта указаны не верные данные (логин и/или пароль) для подключения к базе. Вариант решения: посмотреть в админ-панели сайта данные пользователя, пароль и название базы для подключения к базе. Зайти в ISPmanager — Базы данных — кликнуть на базу, затем на пользователя и в графу Пароль поставить пароль из админ-панели.

Может быть обратная ситуация, когда в панели ISPmanager указаны верные данные, а в конфигурационных файлах указаны неверные. В таком случае нужно править конфигурационные файлы, для CMS Bitrix, например, это /bitrix/.settings.php и/bitrix/php_interface/dbconn.php.

На сайте ошибка «Не удалось подключиться к базе данных»

В зависимости от используемой CMS эта ошибка может по-разному выглядеть:

Возникла ошибка при подключении сервера баз данных MySQL
Can't connect to local MySQL server
Error connect to mysql
Unable to connect to the database:Could not connect to ...

Подключится на сервер по SSH, выполнить:

 systemctl restart mysql                            #перезапуск MySQL для Ubuntu, Debian
 systemctl restart mariadb                          #перезапуск MySQL для Centos 7
 ps axuw | grep mysql                               #Эта команда должна вывести список процессов MySQL. 
                                                    #Если ничего не вывела – значит, MySQL не запустился.

Убедится что в ISPmanager, в разделе Службы лампочка mysql или mariadb горит.

В панели ISPmanager не удается создать базу данных, ошибка «Недостаточно данных»

Это значит у вас в ISPmanager — Серверы БД не создано ни одного сервера баз данных. Для создания нажмите на Серверы БД, далее на Создать сервер. В полях введите название сервера БД (например, MySQL), придумайте имя пользователя и пароль. Также в панели ISPmanager можно установить более 1 СУБД, альтернативные СУБД будут работать в контейнерах Docker.

MySQL не запускается ни в сервисах, ни через консоль

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

cant connect to local mysql server throught socket /var/run/mysqld/mysql.d.sock
/etc/init.d/mysql start
Starting MySQL database server: mysqld . . . . . . . . . . . . . . failed!
/usr/local/etc/rc.d/mysql-server restart
mysql not running? (check /var/db/mysql/peroksid.ispvds.com.pid).
Starting mysql.

Проверить свободное место на диске:

df –h        #общая информация
du –hs /*  #сколько занимает конкретные папки

Если не осталось места, удалить ненужные файлы.

Частая ситуация, когда логи сайтов разрастаются и места на диске свободного не остается, MySQL не может нормально работать (справедливо и для всех остальных сервисов – apache, exim и т.д.)

Снова пробуем перезапустить MySQL:

systemctl restart mysql        #перезапуск MySQL для Ubuntu и Debian
systemctl restart mariadb      #перезапуск MySQL для Centos 7

Если проблема не со свободным местом, в логах должны появиться записи, похожие на эти:

130929 06:16:05 mysqld_safe Starting mysqld daemon with databases from /var/db/mysql
130929  6:16:05 [Warning] '--skip-locking' is deprecated and will be removed in a future release. Please use '--skip-external-locking' instead.
130929  6:16:05 [Warning] option 'max_allowed_packet': unsigned value 5824839680 adjusted to 1073741824
Unknown suffix '-' used for variable 'sort_buffer_size' (value '--read_buffer_size=256K')
130929  6:16:05 [Warning] option 'sort_buffer_size': unsigned value 0 adjusted to 32776
130929  6:16:05 [ERROR] /usr/local/libexec/mysqld: Error while setting value '--read_buffer_size=256K' to 'sort_buffer_size'
130929  6:16:05 [ERROR] Aborting

Смотрим записи с меткой [ERROR]. В логе выше ошибка «Error while setting value ‘—read_buffer_size=256K’ to ‘sort_buffer_size’» означает, что в конфиге my.cnf неверно прописана директива ‘sort_buffer_size. Этот случай приведен только для примера. В каждом конкретном случае лог будет различаться. Ошибки могут быть самые разные. Дальнейшие действия зависят от конкретной ошибки и требуют детального разбирательства.

Решение проблем с кодировками MySQL

Чтобы решить проблему — достаточно понять логику работы. MySQL, начиная с версии 4.1, знает, что такое кодировки и как с ними работать. Если до 4.0 она работала с байтами, то теперь работает с символами.

MySQL написали шведы, поэтому кодировкой по умолчанию (сразу после установки) является latin1, а «сравнение» (последовательность букв, алфавит; влияет на сортировки) — latin1_swedish.

Итак, где кодировки указываются.

1. Кодировка конкретной базы/таблицы/столбца. Это кодировка, в которой MySQL будет хранить данные. Например, если у вас данные в cp1251, то будет большой ошибкой указывать для хранения кодировку latin1. В ней нет соответствий для русских символов, все они будут заменены на вопросы.

Кодировку хранения можно задать, например, так.В терминале открываем MySQL с помощью команды mysql или mysql -u имя_пользователя -p, вводим пароль, после чего пишем в консоли MySQL:

create database `имя базы` default charset cp1251;

Если кодировка не указана — будет использовано значение параметра default-character-set из файла /etc/my.cnf (либо latin1, если параметра нет). Кстати, именно этот параметр редактирует ISPmanager в свойствах сервера баз данных.

2. Кодировка соединения. Это кодировка, в которой клиент (скрипт пользователя, форум, mysql-клиент и т.д.) общается с MySQL. Когда клиент подсоединяется к серверу, тот ему сообщает значение параметра default-character-set. Таким образом они договариваются о том, в какой кодировке будут общаться. Кодировку общения можно изменить запросом (его лучше выполнять сразу после соединения с сервером):

set names cp1251

где вместо cp1251 вы можете указать нужную кодировку.

Кстати, множество современных правильных скриптов именно это и делают.

Одна сложность: есть ряд кривых клиентов, которые всего этого не понимают и общаются в какой-то своей кодировке. Персонально для них можно написать в /etc/my.cnf, секцию [mysqld]:

[mysqld]
set init_connect="set names utf8"

где вместо utf8 вы можете указать нужную кодировку.

Что это означает? Сразу после подсоединения любого клиента, MySQL выполнит запрос set names utf8, как будто смену кодировки общения запросил сам клиент.

Это всё, что нужно знать для решения любой проблемы с кодировками в MySQL. Осталось несколько уточнений (самое интересное):

phpMyAdmin, mysqldump — обычные клиенты, на них действуют те же самые правила. Одно «но»: на все PHP-скрипты (включая phpMyAdmin) действует default-character-set из секции [client] в my.cnf. Для mysqldump есть отдельная секция [mysqldump]. Часто бывает так, что команда mysqldump «не видит» секцию [mysqldump], поэтому в случаях, когда необходимо делать дамп БД в определенной кодировке, лучше использовать mysqldump с параметром --default-character-set=utf8 (вместо utf8 укажите нужную кодировку). ISPmanager прописывает default-character-set во все секции.

Дамп базы — это обычный набор MySQL-команд. Если вы в самое его начало напишете set names cp1251;, то эта команда тоже выполнится, и MySQL будет считать, что дальше все данные в дампе идут в кодировке cp1251.

Кодировки в MySQL-командах пишутся без кавычек и без «-» (дефисов). Популярные в России кодировки: utf8, cp866 (DOS), cp1251 (windows-1251), koi8r, utf8mb4.

И, наконец, пара советов:

  • Если вы в этом новичок, постарайтесь свести всё к одной кодировке. Пусть у вас дамп и default-character-set (напомню, влияет на кодировку хранилища при создании таблиц и на кодировку общения с клиентом) будет в одной кодировке. Это избавит от путаницы и решит 90% проблем.
  • Если есть возможность — используйте консольную утилиту mysqldump. phpMyAdmin — это дополнительная прослойка, которая лишь добавляет свою путаницу и свои баги.

Русификация MySQL

Чтобы русифицировать базу данных MySQL, не вдаваясь в подробности почему и как, проделайте следующие процедуры:

1. В конфигурационном файле /etc/my.cnf добавьте следующие строчки:

Под разделом [client]:

default-character-set=cp1251

Под разделом [mysqld]:

character-set-server=cp1251
collation-server=cp1251_general_ci
init-connect = "set names cp1251"

2. После этого перезапустите базу MySQL или весь ваш виртуальный сервер (из ISPmanager или консоли).

MySQL – широко используемая система управления реляционными базами данных (RDMS) с открытым исходным кодом, принадлежащая Oracle.

На протяжении многих лет он был выбором по умолчанию для веб-приложений и по-прежнему остается популярным по сравнению с другими механизмами баз данных.

См. также Как установить последний MySQL 8.0 на RHEL / CentOS и Fedora

MySQL был разработан и оптимизирован для веб-приложений – он является неотъемлемой частью основных веб-приложений, таких как Facebook, Twitter, Wikipedia, YouTube и многих других.

Ваш сайт или веб-приложение работают на MySQL?

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

Мы опишем, как определить причины проблем и что нужно сделать для их решения.

Содержание

  1. 1. Не удается подключиться к локальному серверу MySQL
  2. 2. Не удается подключиться к серверу MySQL
  3. 3. Доступ запрещен – ошибка в MySQL
  4. 4. Потерянное соединение с MySQL сервером
  5. 5. Слишком много подключений MySQL
  6. 6. Недостаточно памяти MySQL
  7. 7. MySQL продолжает ломаться

1. Не удается подключиться к локальному серверу MySQL

Одной из распространенных ошибок подключения клиента к серверу в 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 не заблокирован брандмауэром или любой службой блокировки портов.

$ ps xa | grep mysqld | grep -v mysqld

4 способа узнать, какие порты прослушиваются в Linux

$ sudo netstat -tlpn | grep "mysql"

2. Не удается подключиться к серверу MySQL

Другая часто встречающаяся ошибка подключения -“(2003) Can’t connect to MySQL server on ‘server’ (10061)”,  что означает, что в сетевом соединении было отказано.

Здесь начнем с проверки того, что в системе работает сервер MySQL, как показано выше.

Также убедитесь, что на сервере включены сетевые подключения и что сетевой порт, который вы используете для подключения, настроен на сервере.

Другие распространенные ошибки, с которыми вы можете столкнуться при попытке подключиться к серверу MySQL:

ERROR 2003: Can't connect to MySQL server on 'host_name' (111)
ERROR 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111)

Эти ошибки указывают на то, что сервер может работать, однако вы пытаетесь подключиться с использованием порта TCP / IP, именованного канала или файла сокета Unix, отличного от того, который прослушивает сервер.

3. Доступ запрещен – ошибка в MySQL

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

Кроме того, учетная запись может также иметь учетные данные для аутентификации, такие как пароль.

Хотя существует много разных причин ошибок «Доступ запрещен», одна из распространенных причин связана с учетными записями MySQL, которые сервер разрешает использовать клиентским программам при подключении.

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

MySQL позволяет создавать учетные записи, которые позволяют пользователям клиентов подключаться к серверу и получать доступ к данным, управляемым сервером.

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

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

> SHOW GRANTS FOR 'itsecforu'@'localhost';

Вы можете предоставить привилегии конкретному пользователю в конкретной базе данных для удаленного IP-адреса, используя следующие команды в оболочке MySQL.

> grant all privileges on *.test_db to 'tecmint'@'192.168.0.100';
> flush privileges;

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

4. Потерянное соединение с MySQL сервером

Вы можете столкнуться с этой ошибкой Lost Connection to MySQL Server по одной из следующих причин: плохое сетевое соединение, время ожидания соединения или проблема со значениями BLOB, которые больше, чем max_allowed_packet.

В случае проблем с сетевым подключением убедитесь, что у вас хорошее сетевое подключение, особенно если вы обращаетесь к удаленному серверу баз данных.

Если это проблема тайм-аута соединения, особенно когда MySQL пытается использовать первоначальное соединение с сервером, увеличьте значение параметра connect_timeout.

Но в случае значений BLOB, которые больше, чем max_allowed_packet, вам нужно установить более высокое значение для max_allowed_packet в вашем файле конфигурации /etc/my.cnf в разделе [mysqld] или [client], как показано далее.

[mysqld]
connect_timeout=100
max_allowed_packet=500M

Если файл конфигурации MySQL недоступен, вы можете установить это значение с помощью следующей команды в оболочке MySQL.

> SET GLOBAL connect_timeout=100;
> SET GLOBAL max_allowed_packet=524288000;

5. Слишком много подключений MySQL

Если клиент MySQL обнаруживает ошибку «too many connections», это означает, что все доступные соединения используются другими клиентами.

Количество соединений (по умолчанию 151) контролируется системной переменной max_connections;

Вы можете устранить проблему, увеличив ее значение, чтобы разрешить больше подключений в файле конфигурации /etc/my.cnf.

[mysqld]
max_connections=1000

6. Недостаточно памяти MySQL

Если вы выполняете запрос с помощью клиентской программы MySQL и сталкиваетесь с рассматриваемой ошибкой -> Out of Memory MySQL, это означает, что в MySQL недостаточно памяти для хранения всего результата запроса.

Первый шаг – убедиться, что запрос правильный, если это так, то выполните следующие действия:

  • если вы используете клиент MySQL напрямую, запустите его с ключом –quick, чтобы отключить кэшированные результаты или
  • Если вы используете драйвер MyODBC, пользовательский интерфейс конфигурации (UI) имеет расширенную вкладку для флагов. Отметьте «Do not cache result».

Еще один замечательный инструмент – MySQL Tuner – полезный скрипт, который подключается к работающему серверу MySQL и дает рекомендации по его настройке для более высокой производительности.

$ sudo apt-get install mysqltuner     #Debian/Ubuntu
$ sudo yum install mysqltuner         #RHEL/CentOS/Fedora
$ mysqltuner

7. MySQL продолжает ломаться

Если вы столкнулись с этой проблемой, вы должны попытаться выяснить, заключается ли проблема в том, что сервер MySQL умирает или это клиентская проблема.

Обратите внимание, что многие сбои сервера вызваны поврежденными файлами данных или индексными файлами.

Вы можете проверить состояние сервера, чтобы определить, как долго он работал.

$ sudo systemctl status mysql       #Debian/Ubuntu
$ sudo systemctl status mysqld      #RHEL/CentOS/Fedora

Либо запустите следующую команду mysqladmin, чтобы узнать время безотказной работы сервера MySQL.

$ sudo mysqladmin version -p 

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

Вы можете попытаться создать контрольный пример, который можно использовать для повторения проблемы.

Кроме того, откройте дополнительное окно терминала и выполните следующую команду, чтобы отобразить статистику процесса MySQL во время выполнения других ваших запросов:

$ sudo mysqladmin -i 5 status
или
$ sudo mysqladmin -i 5 -r status

В этой статье приведены советы по устранению неполадок, возникающих при использовании Oracle MySQL с Google Workspace Migrate.

Ошибки подключения к сети  |  Отсутствие места на диске  |  Проблемы с паролем  |  Узлы отключены

Ошибки подключения к сети

Специалисты службы поддержки Google Workspace не решают проблемы, связанные с настройкой сети.

Ошибки, в описании которых в журналах хоста сервиса для платформы или узла упоминается сервер MySQL, например ошибки типа Connect Timeout expired (Время ожидания подключения истекло), могут означать, что диск MySQL заполнен или произошла проблема с подключением к сети. Действия по устранению таких ошибок зависят от их периодичности.

Развернуть раздел  |  Свернуть все и перейти к началу

Ошибки возникают время от времени

Такие ошибки могут быть связаны с тем, что диск MySQL заполнен. Выполните следующие действия:

  1. Убедитесь, что соблюдаются системные требования в отношении аппаратного обеспечения сервера MySQL (в частности, достаточно ли ОЗУ, быстродействия ЦП и объема хранилища).
  2. Проверьте, выполняются ли следующие условия для сервера MySQL:
    1. Сервер MySQL установлен с помощью специального установщика от Google.
    2. Запущен только один экземпляр MySQL.
    3. На сервере не установлен антивирус или программа защиты от вредоносного ПО.
    4. Если установлен брандмауэр, то на порте 3306 разрешен входящий трафик.

Инструкции по освобождению места на диске приведены в разделе Что делать, если диск MySQL заполнен ниже.

Ошибки возникают постоянно

Такие ошибки могут свидетельствовать о проблеме с сетью.

  1. Убедитесь в том, что:
    • Сервер MySQL отвечает системным требованиям.

      Они приведены в разделе Требования к оборудованию.

    • Вы установили сервер MySQL с помощью специального установщика от Google.

      Узнайте, как скачать установщики.

    • Вы выполнили все инструкции из статьи Как задать настройки базы данных.
    • Все серверы в кластере Google Workspace Migrate находятся в одной сети без брандмауэров и фильтров между ними.
    • На сервере Windows Server с MySQL не установлено другое программное обеспечение.
    • Вы не меняли стандартные настройки брандмауэра Windows.
  2. Удаленно подключитесь к серверу, который не может подключиться к MySQL, и откройте окно PowerShell как администратор.
  3. Чтобы установить клиент Telnet, введите следующую команду:

    Install-WindowsFeature -name Telnet-Client

  4. Перезагрузите MySQL и сервер, который не может подключиться, и повторите попытку. Если у вас по-прежнему возникают проблемы, перейдите к шагу 6.
  5. Чтобы выполнить тест Telnet, введите следующую команду:

    telnet IP-адрес-сервера-MySQL 3306

  6. Проанализируйте результат теста Telnet. Если:
    • Ошибка не возникает или через несколько секунд появляется сообщение Connection to host lost (Подключение к хосту прервано), то, скорее всего, проблемы с сетью нет. Попробуйте снова воспроизвести ошибку. Для этого откройте платформу Google Workspace Migrate и повторите действие, вызвавшее сбой.
    • Вы можете подключиться через Telnet, но не можете через Google Workspace Migrate (с того же узла или платформы), возможно, исходящие подключения блокирует локальный брандмауэр. Проверьте его настройки на локальном сервере.
    • Возникает ошибка, например Could not open connection to the host, on port 3306: Connect failed (Не удалось подключиться к хосту на порте 3306: сбой подключения), выполните действия в таблице ниже.
Введите команду telnet IP-адрес-сервера-MySQL 3306 на… Результат и действия для устранения
другом сервере узла или платформы

Если команда выполняется на другом сервере без ошибок, то, скорее всего, проблема не в сервере MySQL. Проверьте настройки сети на сервере, где не удалось выполнить команду Telnet.

нескольких серверах

Если возникает ошибка, то это проблема с сетью или сервером MySQL. В таком случае выполните следующие действия:

  1. Подключитесь к серверу MySQL через Удаленный рабочий стол.
  2. В окне PowerShell введите следующую команду, чтобы запустить тест Telnet:

    telnet IP-адрес-сервера-MySQL 3306

  3. Если при попытке ввести команду с сервера MySQL возникает ошибка, выполните инструкции из раздела Что делать, если диск MySQL заполнен.
  4. Если при вводе команды с сервера MySQL ошибка не появляется, то проблема, скорее всего, связана с сетью. Убедитесь, что между серверами нет брандмауэра и что они находятся в одной сети VLAN.
сервере MySQL

Если возникает ошибка, то это проблема с сервером MySQL.

  1. В окне PowerShell подключитесь к локальному хосту с помощью следующей команды:

    telnet localhost 3306

  2. Если не возникнет ошибка, убедитесь, что:
    1. сервер MySQL установлен через установщик от Google;
    2. конфигурация не менялась.
  3. Если возникли ошибки, исправьте их и перезапустите сервер.

Что делать, если диск MySQL заполнен

Признаки того, что диск заполнен:

  • Мост или сегмент не обновляются.
  • Мост выполняется, но объекты не обнаруживаются.
  • В файле HAR появляется сообщение A RelationalDataLocation или Errcode: 28 — No space left on device (Код ошибки 28: на устройстве не осталось места).
  • В журналах хоста сервиса платформы возникают следующие или похожие ошибки:
    • The table ‘bridgeexecutionpartitionmappings’ is full (Таблица bridgeexecutionpartitionmappings заполнена);
    • The table ‘appbridgeidentity’ is full (Таблица appbridgeidentity заполнена).

    Подробнее о том, как проверить журналы хоста сервиса…

Чтобы освободить место на диске, попробуйте сделать следующее:

  • Удалите ненужные мосты или проекты.
  • Увеличьте объем диска с помощью Google Compute Engine, следуя инструкциям в статье о том, как добавить постоянный диск на виртуальную машину.
  • Перенесите данные MySQL на диск большего объема (инструкции можно найти в документации MySQL).
  • Удалите файлы двоичного журнала.

Проблемы с паролем

Развернуть раздел  |  Свернуть все и перейти к началу

Что делать, если срок действия пароля MySQL истек

При входе в платформу может появиться черный экран, а в журналах хоста сервиса отобразится следующая ошибка:

[MySqlException; HRESULT -2147467259] : Your password has expired. To log in you must change it using a client that supports expired passwords. (Срок действия вашего пароля истек. Чтобы войти в систему, измените его с помощью клиента, который поддерживает пароли с истекшим сроком действия.).

Эта ошибка возникает из-за того, что срок действия паролей MySQL по умолчанию истекает примерно через год. Чтобы устранить проблему, выполните следующие действия:

  1. Если у вас нет пароля пользователя root для MySQL, сначала выполните действия из раздела Как сбросить пароль пользователя root для MySQL.
  2. Войдите в аккаунт на компьютере с MySQL и откройте командную строку.
  3. Чтобы подключиться к MySQL, введите следующую команду:

    C:MySQLbinmysql.exe -h 127.0.0.1 -u root -pRootPassword

    Вместо RootPassword введите пароль пользователя root в MySQL. Пробел между -p и паролем ставить не нужно.

  4. Чтобы срок действия пароля не истекал, введите следующую команду:

    ALTER USER USER() IDENTIFIED BY ‘RootPassword‘;
    ALTER USER ‘root’@’127.0.0.1’ PASSWORD EXPIRE NEVER;

    ALTER USER ‘migrate’@’%’ PASSWORD EXPIRE NEVER;
    FLUSH PRIVILEGES;

  5. Перезапустите Google Workspace Migrate на сервере платформы.

Как сбросить пароль пользователя migrate для MySQL

Google Workspace Migrate использует для связи с MySQL пароль пользователя migrate. Чтобы сбросить этот пароль, выполните описанные ниже действия.

Шаг 1. Сбросьте пароль

  1. Если у вас нет пароля пользователя root для MySQL, сначала выполните действия из раздела Как сбросить пароль пользователя root для MySQL.
  2. Войдите в аккаунт на компьютере с MySQL и откройте командную строку.
  3. Чтобы подключиться к MySQL, введите следующую команду:

    C:MySQLbinmysql.exe -h 127.0.0.1 -u root -pRootPassword

    Вместо RootPassword введите пароль пользователя root в MySQL. Пробел между «-p» и паролем ставить не нужно.

  4. Чтобы изменить пароль для пользователя migrate, введите следующую команду:

    ALTER USER ‘migrate’@% IDENTIFIED BY ‘NewUserPassword‘; FLUSH PRIVILEGES;

    Вместо NewUserPassword введите новый пароль пользователя migrate.

Шаг 2. Обновите платформу

Выберите инструкции в зависимости от того, есть ли у вас доступ к платформе.

У меня есть доступ к платформе Google Workspace Migrate:

  1. В верхней части экрана Google Workspace Migrate нажмите Settings (Настройки) ""а затемDatabase settings (Настройки базы данных).
  2. Введите новые пароли для MySQL и Apache CouchDB.

    Необходимо указать оба пароля. Если у вас нет пароля для CouchDB, перейдите к разделу У меня нет доступа к платформе Google Workspace Migrate ниже.

  3. Нажмите Continue (Продолжить).

У меня нет доступа к платформе Google Workspace Migrate:

  1. Войдите в систему на компьютере, на котором используется платформа.
  2. На панели задач нажмите правой кнопкой мыши на значок Google Workspace Migrate "" и выберите Edit host settings (Изменить настройки хоста).
  3. В разделе MySQL settings (Настройки MySQL) нажмите Password (Пароль) и введите новый пароль.
  4. Нажмите Save & Close (Сохранить и закрыть)а затемOK.
  5. На панели задач нажмите правой кнопкой мыши на значок Google Workspace Migrate "" и выберите Stop Google Workspace Migrate service (Остановить сервис Google Workspace Migrate). Затем перезапустите сервис.

Шаг 3. Повторно свяжите узлы

Чтобы применить новые параметры базы данных к узлам, выполните следующие действия:

  1. В верхней части экрана Google Workspace Migrate нажмите Servers (Серверы).
  2. Выберите все узлы и нажмите Delete (Удалить) "".
  3. Добавьте узлы с помощью CSV-файла или вручную.

    Подробнее о добавлении узловых серверов…

Как сбросить пароль пользователя root для MySQL

При выполнении следующих шагов замените NewRootPassword новым паролем пользователя root для MySQL:

  1. Войдите в систему на компьютере с MySQL.
  2. Откройте командную строку в режиме повышенного уровня прав и введите C:MySQLbin.
  3. Чтобы остановить сервис MySQL, введите следующую команду:

    for /f %a in (‘net start ^| find /I «mysql»‘) do @net stop %a

  4. Чтобы подготовить командный файл, который задает новый пароль, введите следующую команду:

    echo|set /p=»UPDATE mysql.user SET authentication_string=password(‘NewRootPassword‘) WHERE user=’root’;» > password-reset-init.txt

  5. Сохраните пароль в безопасном месте.
  6. Чтобы сбросить пароль, введите следующую команду:

    mysqld —defaults-file=»C:MySQLmy.ini» —init-file=»C:MySQLbinpassword-reset-init.txt» —console —skip-grant-tables

  7. Когда журнал прекратит заполняться, нажмите Ctrl + Pause или Ctrl + Break, чтобы завершить выполнение команды.
  8. Чтобы удалить командный файл, введите следующую команду:

    del password-reset-init.txt

  9. Чтобы снова запустить MySQL, введите следующую команду:

    for /f %a in (‘net start ^| find /I «mysql»‘) do @net start %a

Что делать, если узлы отключены и не запускаются

Если у вас истек срок действия пароля MySQL и узлы перестали запускаться, выполните следующие действия:

  1. Войдите в систему на компьютере узла.
  2. Удалите или переименуйте файл C:ProgramDataAppBridgeDataSourceSettings.json.
  3. Чтобы снова установить связь с узловыми серверами:
    1. В правом верхнем углу экрана Google Workspace Migrate нажмите Servers (Серверы).
    2. Выберите все узлы и нажмите Delete (Удалить) "".
    3. Добавьте узлы с помощью CSV-файла или вручную.

      Подробнее о добавлении узловых серверов…

Статьи по теме

  • Устранение неполадок с Google Workspace Migrate
  • Сообщения об ошибках в Google Workspace Migrate 

Google, Google Workspace, а также другие связанные знаки и логотипы являются товарными знаками компании Google LLC. Все другие названия компаний и продуктов являются товарными знаками соответствующих компаний.

Возможно, вам также будет интересно:

  • Mysql ошибка could not acquire management access for administration
  • Mysql ошибка 1146 как исправить
  • Mysql ошибка 1045 при установке
  • Mysql ошибка 1045 access denied for user root
  • Mysql не выводит нет ошибки

  • Понравилась статья? Поделить с друзьями:
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии