Home  >  Article  >  Database  >  Tutorial for installing mysql on centos7 (detailed)

Tutorial for installing mysql on centos7 (detailed)

不言
不言forward
2019-04-12 10:43:493747browse

This article brings you a tutorial (detailed) on installing mysql on centos7. It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.

I recently planned to deploy a cloud disk on my home server, so I started a series of environment construction operations. When installing mysql, I found some differences from before, so I recorded them to avoid happening like today again next time. Search everywhere for problems.

1. Uninstall the old version
Use the following command to check whether MySQL Server is installed

rpm -qa | grep mysql

If yes, use the following command to uninstall it

rpm -e mysql   //普通删除模式
rpm -e --nodeps mysql    // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除

2: Install MySQL
1. Install dependencies

yum -y install make gcc-c++ cmake bison-devel  ncurses-devel

2. Obtain the source code (domestic recommendation is to download the sohu mirror http://mirrors.sohu.com/mysql...
mysql5. 7 requires the boost library. It is difficult to find a suitable version on the Internet. It is recommended to directly download the mysql version with the boost library

wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-boost-5.7.24.tar.gz
tar xvf mysql-boost-5.7.24.tar.gz
cd mysql-5.7.24

3. Compile and install

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/usr/local/mysql/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/data/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DDOWNLOAD_BOOST=1 -DWITH_BOOST=./boost
make && make install

The parameters for compilation can refer to http ://dev.mysql.com/doc/refm....

Three: Configure MySQL
Use the following command to check whether there is a mysql user and user group

cat /etc/passwd #查看用户列表
cat /etc/group  #查看用户组列表

If not Just create

groupadd mysql
useradd -g mysql mysql

Modify /usr/local/mysql permissions

chown -R mysql:mysql /usr/local/mysql

Mysql5.7.18 will no longer provide the default mysql configuration file. Here we found a simple configuration online,
vi /etc/my.cnf Then write the content

[client]
port = 3306
default-character-set=utf8

[mysqld]
# 一般配置选项
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character-set-server=utf8
default_storage_engine = InnoDB

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_pISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

Configuration service script

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chkconfig mysql on #添加到开机启动项
service mysql start #启动mysql

Add the mysql execution file to the path directory, vi /etc/profile

PATH=/usr/local/mysql/bin:$PATH
export PATH

Then execute source /etc/profile

Four: Initialize mysql
1. Execute the initialization script (the last line of successful initialization will generate the mysql root password. Note it and record it, or you can use ./mysqld --initialize --insecure initialize an account with an empty password)

cd /usr/local/mysql/bin
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
...
2019-04-11T14:34:15.922856Z 1 [Note] A temporary password is generated for root@localhost: /rTmud(Th5Yy

2. Firewall opens port 3306
The method of adding a port in Firewalld is as follows:
firewall-cmd --zone=public --add-port= 3306/tcp --permanent
firewall-cmd --reload

The above is the detailed content of Tutorial for installing mysql on centos7 (detailed). For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:segmentfault.com. If there is any infringement, please contact admin@php.cn delete