LAMP-compile e instale el servicio Mysqld (4-2)

Compile e instale el servicio mysqld

1. Transfiera los paquetes de software necesarios para instalar mysql al directorio / opt

cd /opt
mysql-5.7.17.tar.gz
boost_1_59_0.tar.gz		#支持c++的运行库

Inserte la descripción de la imagen aquí

2. El entorno de instalación depende del paquete.

yum -y install \
gcc \
gcc-c++ \
ncurses \				#字符终端下图形互动功能的动态库
ncurses-devel \			#ncurses开发包
bison \					#语法分析器
cmake					#mysql需要用cmake编译安装

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

Inserte la descripción de la imagen aquí

3. Configure el módulo de software

tar zxvf mysql-5.7.17.tar.gz
tar zxvf boost_1_59_0.tar.gz

cd /opt
mv boost_1_59_0 /usr/local/boost		#重命名

cd /opt/mysql-5.7.17/
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \		#指定mysql的安装路径
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ #指定mysql进程监听套接字文件(数据库连接文件)的存储路径
-DSYSCONFDIR=/etc \                             #指定配置文件的存储路径
-DSYSTEMD_PID_DIR=/usr/local/mysql \            #指定进程文件的存储路径
-DDEFAULT_CHARSET=utf8  \                       #指定默认使用的字符集编码,如 utf8
-DDEFAULT_COLLATION=utf8_general_ci \			#指定默认使用的字符集校对规则
-DWITH_EXTRA_CHARSETS=all \						#指定支持其他字符集编码
-DWITH_INNOBASE_STORAGE_ENGINE=1 \              #安装INNOBASE存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \               #安装ARCHIVE存储引擎 
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \             #安装BLACKHOLE存储引擎 
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \            #安装FEDERATED存储引擎 
-DMYSQL_DATADIR=/usr/local/mysql/data \         #指定数据库文件的存储路径
-DWITH_BOOST=/usr/local/boost \          #指定boost的路径,若使用mysql-boost集成包安装则-DWITH_BOOST=boost
-DWITH_SYSTEMD=1								#生成便于systemctl管理的文件

存储引擎选项:
MYISAM,MERGE,MEMORY,和CSV引擎是默认编译到服务器中,并不需要明确地安装。
静态编译一个存储引擎到服务器,使用-DWITH_engine_STORAGE_ENGINE= 1
可用的存储引擎值有:ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), PARTITION (partitioning support), 和PERFSCHEMA (Performance Schema)

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8  \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=/usr/local/boost \
-DWITH_SYSTEMD=1

Nota: Si se informa un error durante CMAKE, después de que se resuelva el error, debe eliminar el archivo CMakeCache.txt en el directorio de origen y luego volver a CMAKE; de lo contrario, el error permanecerá
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

4. Compile e instale

make && make install

Mucho tiempo, espera pacientemente
Inserte la descripción de la imagen aquí

5. Cree un usuario de mysql

useradd -M -s /sbin/nologin  mysql

Inserte la descripción de la imagen aquí

6. Modifique el archivo de configuración de mysql

vim /etc/my.cnf								#删除原配置项,再重新添加下面内容
[client]									#客户端设置
port = 3306
socket = /usr/local/mysql/mysql.sock			

[mysql]										#服务端设置
port = 3306
socket = /usr/local/mysql/mysql.sock
auto-rehash									#开启自动补全功能

[mysqld]									#服务全局设置
user = mysql       							#设置管理用户
basedir=/usr/local/mysql					#指定数据库的安装目录
datadir=/usr/local/mysql/data				#指定数据库文件的存储路径
port = 3306									#指定端口
character-set-server=utf8					#设置服务器字符集编码格式为utf8
pid-file = /usr/local/mysql/mysqld.pid		#指定pid 进程文件路径
socket=/usr/local/mysql/mysql.sock			#指定数据库连接文件
bind-address = 0.0.0.0						#设置监听地址,0.0.0.0代表允许所有,如允许多个IP需空格隔开
skip-name-resolve							#禁用DNS解析
max_connections=2048						#设置mysql的最大连接数
default-storage-engine=INNODB				#指定默认存储引擎
max_allowed_packet=16M						#设置数据库接收的数据包大小的最大值
server-id = 1								#指定服务ID号
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

Los valores comunes de sql_mode son los siguientes:
NO_ENGINE_SUBSTITUTION
Si el motor de almacenamiento requerido está deshabilitado o no se compila, se genera un error. Cuando no se establece este valor, reemplácelo con el motor de almacenamiento predeterminado y
genere una excepción STRICT_TRANS_TABLES.
En este modo, si un valor no se puede insertar en una tabla de transacciones, la operación actual se interrumpe y no se imponen restricciones a la no transacción. tablas.
NO_AUTO_CREATE_USER
prohíbe GRANT crea un usuario con una contraseña vacía
NO_AUTO_VALUE_ON_ZERO
La columna de incremento automático en MySQL puede empezar desde 0. De forma predeterminada, las columnas autoincrementables comienzan desde 1, si inserta datos con un valor de 0, se informará un error.
NO_ZERO_IN_DATE
no permite que la fecha y el mes sean cero.
NO_ZERO_DATE La
base de datos mysql no permite la inserción de un cero fecha. Insertar una fecha cero arrojará un error en lugar de una advertencia
ERROR_FOR_DIVISION_BY_ZERO
Durante INSERT o UPDATE, si los datos se dividen por cero, se genera un error en lugar de una advertencia. De forma predeterminada, MySQL devuelve NULL cuando los datos se dividen por cero.
PIPES_AS_CONCAT
trata "||" como un operador de concatenación de cadenas en lugar de un operador OR, que es lo mismo que la base de datos Oracle y similar a la función de concatenación de cadenas Concat
ANSI_QUOTES
Cuando ANSI_QUOTES está habilitado, las comillas dobles no se pueden usar para citar una cadena porque se interpreta como un identificador

[client]
port = 3306
default-character-set=utf8
socket=/usr/local/mysql/mysql.sock

[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock
auto-rehash

[mysqld]
user = mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

Inserte la descripción de la imagen aquí

7. Cambie el grupo propietario del directorio de instalación y el archivo de configuración de mysql.

chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf

Inserte la descripción de la imagen aquí

8. Establezca la variable de entorno de la ruta.

echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile	
source /etc/profile

Inserte la descripción de la imagen aquí

9. Inicialice la base de datos

cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \				#生成初始化密码为空
--user=mysql \                      #指定管理用户
--basedir=/usr/local/mysql \        #指定数据库的安装目录
--datadir=/usr/local/mysql/data		#指定数据库文件的存储路径

./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

Inserte la descripción de la imagen aquí

10. Agregue el servicio del sistema mysqld

cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/		#用于systemctl服务管理
systemctl daemon-reload         #刷新识别     
systemctl start mysqld.service  #开启服务
systemctl enable mysqld         #开机自启动
netstat -anpt | grep 3306       #查看端口

Inserte la descripción de la imagen aquí

11. Modifique la contraseña de inicio de sesión de mysql

mysqladmin -u root -p password "srs123" 	#给root账号设置密码为abc123,提示输入的是原始密码(为空)

Inserte la descripción de la imagen aquí

12. Autorice el inicio de sesión remoto

mysql -u root -p
grant all privileges on *.* to 'root'@'%' identified by 'srs123';
#授予root用户可以在所有终端远程登录,使用的密码是srs123,并对所有数据库和所有表有操作权限

show databases;			#查看当前已有的数据库

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/s15212790607/article/details/115136800
Recomendado
Clasificación