一体、何回目でしょうか? また、何度もこういったentryを記載しているのは、 mysqlにおけるversion毎の差異も原因かと思います。
https://dev.mysql.com/doc/refman/8.0/en/source-installation.html
dev.mysql.comに↑こちらのdocumentが公開されていますが、 私にはあまり役に立ちませんでした。
$ wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.16.tar.gz # 当初、centos7にyum install cmake しましたが、 # mysql v.8.0.16 には古いようなので、以下の3行のように devtoolset-7 を利用。 $ sudo yum install centos-release-scl $ sudo yum install devtoolset-7 $ scl enable devtoolset-7 bash # mysqlの依存packageをinstall $ sudo yum install openssl-devel $ sudo yum install ncurses-devel $ tar -xvf mysql-8.0.16.tar.gz $ /usr/local/bin/cmake . \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DENABLED_LOCAL_INFILE=true \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_EXTRA_CHARSETS=all \ -DWITH_READLINE=ON \ -DDOWNLOAD_BOOST=ON \ -DWITH_BOOST=/home/end0tknr/tmp/boost \ -DFORCE_INSOURCE_BUILD=1 \ -DWITH_SYSTEMD=ON $ make $ make test $ sudo make install
$ sudo groupadd mysql $ sudo useradd -r -g mysql mysql
https://end0tknr.hateblo.jp/entry/20160819/1471562683
my.cnf の内容は、以前のentryを参考にしています。
特に通常のinstallでは、rootでのログイン時に
$ /usr/local/mysql/bin/mysql -u root ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
と怒られ、ログインできませんでしたので、「skip-grant-tables」を追加しています。
(rootの初期パスワードは、/var/log/mysql.log に表示されるらしいのですが、 私の環境では表示されませんでしたので)
$ sudo vi /etc/my.cnf # For advice on how to change settings please see # http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html [mysqld] max_allowed_packet = 32M innodb_log_file_size = 128MB # Remove leading # and set to the amount of RAM for the most important data # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%. # innodb_buffer_pool_size = 128M # Remove leading # to turn on a very important data integrity option: logging # changes to the binary log between backups. # log_bin # These are commonly set, remove the # and set as required. # basedir = ..... # datadir = ..... # port = ..... # server_id = ..... # socket = ..... basedir = /usr/local/mysql datadir = /var/mysql_data skip-grant-tables default_password_lifetime=0 validate_password.policy=LOW # Remove leading # to set options mainly useful for reporting servers. # The server defaults are faster for transactions and fast SELECTs. # Adjust sizes as needed, experiment to find the optimal values. # join_buffer_size = 128M # sort_buffer_size = 2M # read_rnd_buffer_size = 2M sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
$ sudo mkdir /var/mysql_data $ sudo chown mysql:mysql /var/mysql_data $ sudo chmod 750 /var/mysql_data $ sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql $ sudo /usr/local/mysql/bin/mysql_ssl_rsa_setup $ sudo /usr/local/mysql/bin/mysqld --initialize-insecure $ sudo /usr/local/mysql/bin/mysql_secure_installation
$ sudo cp /home/end0tknr/tmp/mysql-8.0.16/scripts/mysqld.service \ /etc/systemd/system/ $ sudo systemctl enable mysqld.service $ sudo systemctl start mysqld.service