mysqld_safe, pkg kullanarak FreeBSD / amd64 10.3'teki MySQL 5.7.13 portunu kurduktan sonra başlamıyor


1

MySQL sunucusunu çalıştırırken bir sorunum var. FreeBSD 10.3'ü yeni yükledim ve burada çalışmak istiyorum MySQL sunucusu, ancak işlem başlamıyor.

Adım adım FreeBSD kurulumundan sonra verdiğim tüm komutlar:

portsnap fetch extract
pkg update
pkg install mysql57-server

/ * Burada mysql, root için parola içeren .mysql_secret dosyası hakkında bilgi veriyor, ancak hiç üretmiyor. Kullanabilirim ama sonuç yok ... * /

find / -iname .mysql_secret

Bu komutu kullanarak ilk önce MySQL'i çalıştırmayı denediğimde:

mysqld_safe --initialize --user=mysql

Bunu anladım:

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

İşte /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

Simmilar bir şey buldum:

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

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

Hala bir çözüm yok. Herhangi bir fikir? Gerçekten MySQL'e ihtiyacım var. Ben de MySQL 5.6 ile denedim. Aynı sorun...

Sonunda /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

Sadece bir kenara, portsnap fetch extracteğer kullanıyorsanız yapmanız gerekmez pkg:)
forquare

Yanıtlar:


1

Veritabanını başlatmanız gerekiyor. Bu zaten FreeBSD başlangıç ​​betiğinde ele alınmıştır, ancak zor yoldan yapmak zor değildir. mysql_install_dbYardımcı programa bak .

Ancak, aşağıdakileri /etc/rc.confdosyanızı eklerseniz :

mysql_enable="YES"

Ardından, mysql_install_dbyardımcı program ilk defa otomatik olarak çalıştırılır.

Hizmet önyükleme sırasında otomatik olarak veya şu servicekomutu kullanarak el ile başlatılır :

service mysql start

mysql_install_db kullanımdan kaldırıldı, bu yüzden mysqld_safe kullandım
initialize --user

1

Mysql komutunu çalıştırmadan önce, aşağıdakileri root olarak yaparak mysql servisini başlatmanız gerekir:

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

Bu daha sonra /root/.mysql_secret'root' @ 'localhost' için başlangıç ​​şifresini içeren dosyayı oluşturur . Daha sonra mysql komutunuzu çalıştırabilirsiniz.


1

Sonunda kendimi bir çözüm buldum:

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)

ve bunun gibi...

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.