MariaDB에서 ERROR 2002 (HY000): Can't connect to local MySQL server 발생 시 해결책

7530 단어 mariadbMariaDB10
다음과 같은 ERROR 2002 에서 MariaDB 에 접속할 수 없는 에러가 발생했을 경우의 대처법을 이하에 정리해 보았습니다.
# mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

OS는 CentOS 7, MariaDB 버전은 OS에 표준으로 번들 되어 있는 5.5.x 라고 전제로 합니다.

원래 mysqld가 시작되지 않았습니다.


ps -ef | grep -i mysqld

에서 mysqld가 실행 중인지 확인하십시오. 시작하지 않으면,
systemctl enable mariadb
systemctl start mariadb

를 실행해보십시오. 정상적으로 기동하고 있는 경우의 ps -ef | grep mysqld 의 출력은 이하와 같습니다.
# ps -ef|grep mysqld
mysql     2941     1  0 12:09 ?        00:00:00 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
mysql     3103  2941  0 12:09 ?        00:00:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock
root      3411  2449  0 12:27 pts/1    00:00:00 grep --color=auto mysqld

/var/lib/mysql 아래의 파일 소유자가 mysqld 실행 사용자 (mysql)가 아닙니다.


drwx------.  2 root  root         6 May 20 12:07 test
drwx------.  2 root  root      4096 May 20 12:07 mysql
drwx------.  2 root  root      4096 May 20 12:07 performance_schema
-rw-rw----.  1 root  root        52 May 20 12:07 aria_log_control
-rw-rw----.  1 root  root     16384 May 20 12:07 aria_log.00000001
drwxr-xr-x.  5 mysql mysql      159 May 20 12:07 .
-rw-rw----.  1 mysql mysql  5242880 May 20 12:07 ib_logfile1
-rw-rw----.  1 mysql mysql  5242880 May 20 12:07 ib_logfile0
-rw-rw----.  1 mysql mysql 18874368 May 20 12:07 ibdata1

다음 명령을 실행해 보십시오.
chown -R mysql:mysql /var/lib/mysql
systemctl start mariadb

이것으로 mysql 커멘드로 접속할 수 있게 된다고 생각합니다.
# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.56-MariaDB MariaDB Server

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 

firewall 설정에서 port 3306이 열리지 않음





AWS EC2의 경우 보안 그룹, GCE의 경우 firewall rule 등에서 tcp port 3306이 열려 있는지 확인합니다.

(덤) MariaDB 10.2로 업데이트



현재 최신 버전 10.2로 업데이트해 봅니다.
yum -y remove "mariadb*"
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
yum -y install MariaDB-server

에러 로그가 출력되도록 mysqld 섹션에 log_error 를 설정합니다.

/etc/my.cnf.d/server.cnf
[mysqld]
log_error

mariadb 서비스를 시작하면,
systemctl start mariadb

/var/lib/mysql/hostname.err에 오류 로그가 출력됩니다.
2018-05-20 12:37:04 139889543854272 [ERROR] Missing system table mysql.roles_mapping; please run mysql_upgrade to create it

mysql_upgrade를 실행하라는 메시지가 표시되므로 mysql_upgrade를 실행합니다.
# mysql_upgrade
Phase 1/7: Checking and upgrading mysql database
Processing databases
mysql
mysql.columns_priv                                 OK
mysql.db                                           OK
mysql.event                                        OK
mysql.func                                         OK
mysql.help_category                                OK
mysql.help_keyword                                 OK
mysql.help_relation                                OK
mysql.help_topic                                   OK
mysql.host                                         OK
mysql.ndb_binlog_index                             OK
mysql.plugin                                       OK
mysql.proc                                         OK
mysql.procs_priv                                   OK
mysql.proxies_priv                                 OK
mysql.servers                                      OK
mysql.tables_priv                                  OK
mysql.time_zone                                    OK
mysql.time_zone_leap_second                        OK
mysql.time_zone_name                               OK
mysql.time_zone_transition                         OK
mysql.time_zone_transition_type                    OK
mysql.user                                         OK
Upgrading from a version before MariaDB-10.1
Phase 2/7: Installing used storage engines
Checking for tables with unknown storage engine
Phase 3/7: Fixing views
Phase 4/7: Running 'mysql_fix_privilege_tables'
Phase 5/7: Fixing table and database names
Phase 6/7: Checking and upgrading tables
Processing databases
information_schema
performance_schema
test
test.t1                                            OK
Phase 7/7: Running 'FLUSH PRIVILEGES'
OK

mariadb 서비스를 다시 시작합니다.
systemctl restart mariadb

/var/lib/mysql/server.error
2018-05-20 12:47:05 140365761669312 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2018-05-20 12:47:05 140365761669312 [Note] InnoDB: Uses event mutexes
2018-05-20 12:47:05 140365761669312 [Note] InnoDB: Compressed tables use zlib 1.2.7
2018-05-20 12:47:05 140365761669312 [Note] InnoDB: Using Linux native AIO
2018-05-20 12:47:05 140365761669312 [Note] InnoDB: Number of pools: 1
2018-05-20 12:47:05 140365761669312 [Note] InnoDB: Using SSE2 crc32 instructions
2018-05-20 12:47:05 140365761669312 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
2018-05-20 12:47:05 140365761669312 [Note] InnoDB: Completed initialization of buffer pool
2018-05-20 12:47:05 140364988831488 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
2018-05-20 12:47:05 140365761669312 [Note] InnoDB: Highest supported file format is Barracuda.
2018-05-20 12:47:05 140365761669312 [Note] InnoDB: 128 out of 128 rollback segments are active.
2018-05-20 12:47:05 140365761669312 [Note] InnoDB: Creating shared tablespace for temporary tables
2018-05-20 12:47:05 140365761669312 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
2018-05-20 12:47:05 140365761669312 [Note] InnoDB: File './ibtmp1' size is now 12 MB.
2018-05-20 12:47:05 140365761669312 [Note] InnoDB: Waiting for purge to start
2018-05-20 12:47:05 140365761669312 [Note] InnoDB: 5.7.22 started; log sequence number 1624410
2018-05-20 12:47:05 140364748936960 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool
2018-05-20 12:47:05 140364748936960 [Note] InnoDB: Buffer pool(s) load completed at 180520 12:47:05
2018-05-20 12:47:05 140365761669312 [Note] Plugin 'FEEDBACK' is disabled.
2018-05-20 12:47:05 140365761669312 [Note] Server socket created on IP: '::'.
2018-05-20 12:47:05 140365761669312 [Note] Reading of all Master_info entries succeded
2018-05-20 12:47:05 140365761669312 [Note] Added new Master_info '' to hash table
2018-05-20 12:47:05 140365761669312 [Note] /usr/sbin/mysqld: ready for connections.
Version: '10.2.15-MariaDB'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  MariaDB Server

mysql_upgrade로 각 테이블을 업데이트하여 오류가 발생하지 않습니다.

좋은 웹페이지 즐겨찾기