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)
등...