Uno, el paquete de dependencia del entorno necesario para instalar MySQL
[root@localhost opt]# yum -y install \
gcc \
gcc-c++ \
make \
ncurses \
ncurses-devel \
bison \
cmake
Descripción del paquete dependiente del entorno
gcc | Compilador de lenguaje C |
---|---|
gcc-c ++ | Compilador C ++ |
hacer | Compilación de código fuente (el código fuente se convierte en archivos binarios) |
2. Crea una cuenta corriente
[root@localhost ~]# useradd -s /sbin/nologin mysql
Tres, compila e instala
[root@localhost ~]# cd /opt
[root@localhost opt]# tar xzvf mysql-boost-5.7.20.tar.gz
[root@localhost opt]#cd /opt/mysql-5.7.20/
[root@localhost mysql-5.7.20]#
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_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=boost \
-DWITH_SYSTEMD=1
[root@localhost mysql-5.7.20]#make -j3
[root@localhost mysql-5.7.20]#make install
Significado de las opciones de configuración
-
DCMAKE_INSTALL_PREFIX: Especifica la instalación del programa de base de datos mysql en un directorio determinado, como el directorio / usr / local / mysql.
-
DMYSQL_UNIX_ADDR: especifique la ruta de almacenamiento del archivo de socket, el archivo conectado a la base de datos
-
DSYSCONFDIR: especifique el directorio del archivo de parámetros de inicialización
-
DDEFAULT_CHARSET: especifique la codificación del juego de caracteres que se usa de forma predeterminada, como utf8.
-
DDEFAULT_COLLATION: especifique las reglas de clasificación para el juego de caracteres predeterminado, utf8_general_ci es una regla general para el juego de caracteres UTF-8.
-
DWITH_INNOBASE_STORAGE_ENGINE = 1: Instale el motor de almacenamiento INNOBASE
-
DWITH_ARCHIVE_STORAGE_ENGINE = 1: Instale el motor de almacenamiento ARCHIVE
-
DWITH_BLACKHOLE_STORAGE_ENGINE = 1: Instale el motor de almacenamiento ARCHIVE
-
DWITH_PERFSCHEMA_STORAGE_ENGINE: instalar motor de almacenamiento FEDERATED
-
DMYSQL_DATADIR = / data / mysql: ruta de instalación de datos
Para especificar explícitamente no compilar un motor de almacenamiento, puede utilizar una opción similar a la siguiente:
-DWITHOUT__STORAGE_ENGINE = 1
Si desea compilar en otras funciones, como SSL, puede usar opciones como las siguientes para usar una biblioteca o no usar una biblioteca al compilar:
-DWITH_READLINE = 1
-DWITH_SSL = sistema significa usar la biblioteca SSL incorporada en el sistema
-DWITH_ZLIB = sistema
-DWITH_LIBWRAP = 0
Otras opciones de uso común:
-DMYSQL_TCP_PORT = 3306: Establecer el puerto predeterminado
-DMYSQL_UNIX_ADDR = / tmp / mysql.sock: La ubicación del socket para la comunicación entre procesos de MySQL
-DENABLED_LOCAL_INFILE = 1: Ya sea para iniciar el LOCAL_INFILE local
-DEXTRA_ all: Soporte Qué juegos de caracteres adicionales -
DDEFAULT_CHARSET = utf8: el juego de caracteres predeterminado -
DDEFAULT_COLLATION = utf8_general_ci: la colación del juego de caracteres predeterminado -
DWITH_DEBUG = 0: si habilitar la función DEBUG -
DENABLE_PROFILING = 1: si habilitar la función de análisis de rendimiento
Nota :
- Si hay un error en el proceso
de 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 permanece. - 报错 : make: *** No se han especificado objetivos y no se ha encontrado ningún archivo MAKE. Deténgase. 解决 方法
1 、 wget http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.6.tar.gz
2. 、 tar zxvf ncurses-5.6.tar.gz
3 、 ./configure -prefix = / usr / local -with-shared-without-debug
4 、 make
5 、 make install
Cuatro, modificación de los permisos del directorio de la base de datos
chown -R mysql:mysql /usr/local/mysql/
Cinco, modificar el archivo de configuración
vi /etc/my.cnf
[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
[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
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
[root@localhost ~]# chown mysql:mysql /etc/my.cnf
Seis, establecer variables de entorno
echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
echo 'export PATH' >> /etc/profile
source /etc/profile
Siete, inicializa la base de datos
cd /usr/local/mysql/
bin/mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl enable mysqld
systemctl start mysqld
systemctl status mysqld
netstat -anpt | grep 3306
8. Establezca la contraseña de inicio de sesión e inicie sesión en la base de datos.
mysqladmin -u root -p password "abc123" ##刚开始没密码是空的直接回车,然后输入密码abc123,在此确认abc123,这是在root账户下运行的
mysql -u root -p ##这个命令敲下,提示要输入密码,这个就是刚才设置的密码abc123,可登录数据库