Install mysql5.7 through binary source code under Linux (5.7 installation and commands are different from previous versions)

Keywords: MySQL Linux yum socket

Here I choose the official website to download the source package, compile and install
Reference 1: when linux is configured, how do you choose to install it by compilation or by yum
Reference 2: mysql installation under linux

1, Preparation:

Download address on Mysql official website

2, Pit summary:

2.1 about initialization:
MySQL 5.7 is different from the previous versions. This command is available in many materials:.. / scripts / MySQL ﹐ install ﹐ DB – user=mysql, while MySQL ﹐ install ﹐ DB command of MySQL 5.7 is in bin directory and MySQL D – initialize command is recommended

5.7 used after

bin/mysqld --initialize --user=mysql --basedir=/Ultrapower/test/mysql --datadir=/Ultrapower/test/mysql/data

2.2 about configuration files:
A lot of information has such a paragraph

cp support-files/my-default.cnf /etc/my.cnf  

Just copy the configuration file under MySQL / support files / my-default.cnf to / etc/my.cnf, but there is no my-default.cnf configuration file after 5.7, which does not affect.

After the normal installation, / etc/my.cnf should exist, and you can copy it regardless of the above step. The following is my profile, which can be used by reference.

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.

[mysqld]

# 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
general_log_file = /var/log/mysql/mysql.log
general_log = 1
# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = .....
# port = .....
# server_id = .....
# socket = .....

#kip-external-locking
skip-name-resolve

basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
pid-file=/usr/local/mysql/data/mysql.pid
port=3306
character_set_server=utf8
init_connect='SET NAMES utf8'
log-error=/usr/local/mysql/data/mysqld.err

slow_query_log = 1
slow_query_log_file =/usr/local/mysql/data/slow-query.log
long_query_time = 1
log-queries-not-using-indexes
max_connections = 1024
back_log = 128
wait_timeout = 100
interactive_timeout = 200
key_buffer_size=256M
query_cache_size = 256M
query_cache_type=1
query_cache_limit=50M
max_connect_errors=20
sort_buffer_size = 2M
max_allowed_packet=16M
join_buffer_size=2M
thread_cache_size=200
innodb_buffer_pool_size = 2048M
innodb_flush_log_at_trx_commit = 1
innodb_log_buffer_size=32M
innodb_log_file_size=128M
innodb_log_files_in_group=3

server_id=1
log-bin=mysql-bin
binlog_cache_size=2M
max_binlog_cache_size=8M
max_binlog_size=512M
expire_logs_days=7
read_buffer_size=1M
read_rnd_buffer_size=16M
bulk_insert_buffer_size=64M


# 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.
# jo

2.3 about startup: use the command systemctl start mysql.service to report an error

[csy@root@instance-m4tjyg0q ~]# systemctl start mysql.service  
Error getting authority: Error initializing authority: Error calling StartServiceByName 
for org.freedesktop.PolicyKit1: Timeout was reached (g-io-error-quark, 24)
Could not watch jobs: Connection timed out
[csy@root@instance-m4tjyg0q ~]# 

The correct way to start is

#/etc/init.d/mysql start or service mysql start or bin / mysqld_safe&  

2.4 about the client remote connection permission problem:

Because the host is localhost when the user is created, other external ip has no access and needs authorization

GRANT ALL PRIVILEGES ON *.* TO 'user name'@'%' IDENTIFIED BY 'Password' WITH GRANT OPTION;

%It's any ip

reference: Navicat can't connect to MySQL on Linux server

Baidu to solve other problems~

Posted by Brendan Nolan on Sun, 03 May 2020 07:56:02 -0700