pkg를 사용하여 FreeBSD/amd64 10.3에 MySQL 5.7.13 포트를 설치한 후 mysqld_safe가 시작되지 않습니다.

pkg를 사용하여 FreeBSD/amd64 10.3에 MySQL 5.7.13 포트를 설치한 후 mysqld_safe가 시작되지 않습니다.

mysql 서버를 실행하는 데 문제가 있습니다. 방금 FreeBSD 10.3을 설치했고 여기에서 MySQL 서버를 실행하고 싶은데 프로세스가 시작되지 않습니다.

FreeBSD를 설치한 후 단계별로 제공한 모든 명령은 다음과 같습니다.

portsnap fetch extract
pkg update
pkg install mysql57-server

/* 여기서 mysql은 .mysql_secret 파일과 루트 비밀번호에 대해 설명하지만 전혀 생성되지 않습니다. 사용할 수 있지만 결과가 없습니다... */

find / -iname .mysql_secret

다음을 사용하여 처음으로 MySQL을 실행하려고 할 때:

mysqld_safe --initialize --user=mysql

나는 이것을 얻습니다 :

mysqld_safe Logging to '/var/db/mysql/host.err'
mysqld_safe Starting mysqld deamon with databases from /var/db/mysql
mysqld_safe mysqld from pid file /var/db/mysql/host.pid ended

여기는 /var/db/mysql/host.err입니다.

2016-08-22T11:56:27.6NZ mysqld_safe Starting mysqld daemon with databases from /var/db/mysql
2016-08-22T11:56:27.533572Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting.
2016-08-22T11:56:27.533635Z 0 [ERROR] Aborting

2016-08-22T11:56:27.6NZ mysqld_safe mysqld from pid file /var/db/mysql/host.pid ended

비슷한 것을 발견했습니다.

https://forums.freebsd.org/threads/56275/

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=209512

아직 해결책이 없습니다. 어떤 아이디어가 있나요? MySQL이 정말 필요합니다. 나는 또한 MySQL 5.6을 사용해 보았습니다. 같은 질문...

마지막으로 /usr/local/etc/mysql/my.cnf

# $FreeBSD: branches/2016Q3/databases/mysql57-server/files/my.cnf.sample.in 414707 2016-05-06 14:39:59Z riggs $

[client]
port                            = 3306
socket                          = /tmp/mysql.sock

[mysql]
prompt                          = \u@\h [\d]>\_
no_auto_rehash

[mysqld]
user                            = mysql
port                            = 3306
socket                          = /tmp/mysql.sock
bind-address                    = 127.0.0.1
basedir                         = /usr/local
datadir                         = /var/db/mysql
tmpdir                          = /var/db/mysql_tmpdir
slave-load-tmpdir               = /var/db/mysql_tmpdir
secure-file-priv                = /var/db/mysql_secure
log-bin                         = mysql-bin
log-output                      = TABLE
master-info-repository          = TABLE
relay-log-info-repository       = TABLE
relay-log-recovery              = 1
slow-query-log                  = 1
server-id                       = 1
sync_binlog                     = 1
sync_relay_log                  = 1
binlog_cache_size               = 16M
expire_logs_days                = 30
default_password_lifetime       = 0
enforce-gtid-consistency        = 1
gtid-mode                       = ON
safe-user-create                = 1
lower_case_table_names          = 1
explicit-defaults-for-timestamp = 1
myisam-recover-options          = BACKUP,FORCE
open_files_limit                = 32768
table_open_cache                = 16384
table_definition_cache          = 8192
net_retry_count                 = 16384
key_buffer_size                 = 256M
max_allowed_packet              = 64M
query_cache_type                = 0
query_cache_size                = 0
long_query_time                 = 0.5
innodb_buffer_pool_size         = 1G
innodb_data_home_dir            = /var/db/mysql
innodb_log_group_home_dir       = /var/db/mysql
innodb_data_file_path           = ibdata1:128M:autoextend
innodb_temp_data_file_path      = ibtmp1:128M:autoextend
innodb_flush_method             = O_DIRECT
innodb_log_file_size            = 256M
innodb_log_buffer_size          = 16M
innodb_write_io_threads         = 8
innodb_read_io_threads          = 8
innodb_autoinc_lock_mode        = 2
skip-symbolic-links

[mysqldump]
max_allowed_packet              = 256M
quote_names
quick

답변1

데이터베이스를 초기화해야 합니다. 이는 FreeBSD 시작 스크립트에서 이미 처리되어 있지만 어려운 방법으로 수행하는 것은 그리 어렵지 않을 수 있습니다. mysql_install_db실용성을 보세요 .

그러나 /etc/rc.conf파일에 다음을 추가하는 경우:

mysql_enable="YES"

그러면 유틸리티 mysql_install_db가 처음으로 자동으로 실행됩니다.

서비스는 부팅 시 자동으로 시작되거나 다음을 사용하여 시작됩니다.service주문하다:

service mysql start

답변2

mysql 명령을 실행하려면 먼저 루트로 다음을 수행하여 mysql 서비스를 시작해야 합니다.

echo mysql_enable="YES" >> /etc/rc.conf
service mysql start

/root/.mysql_secret그러면 "root"@"localhost" 초기 비밀번호가 포함된 파일이 생성됩니다. 그러면 mysql 명령을 실행할 수 있게 됩니다.

답변3

마침내 나는 스스로 해결책을 찾았습니다.

cd /var/db/mysql #IMPORTANT STEP
/usr/local/libexec/mysqld --initialize --user=mysql #SECOND IMPORTANT STEP
echo mysql_enable="YES" >> /etc/rc.conf
service mysql-server start
mysql -u root -p (here password randomly generated from the terminal)

등...

관련 정보