在Centos7上搭建Mysql数据库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Centos7上搭建Mysql数据库相关的知识,希望对你有一定的参考价值。

mysql服务基础:

mysql是一个真正的多线程、多用户的SQL数据库服务,凭借其高性能、高可靠和易于使用的特性,成为服务器领域中最受欢迎的开源数据库系统。

MySQL的编译安装:

1.安装支持软件

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

2.创建运行用户mysql,并解压mysql源码包到/opt/目录下,将boost源码包解压到/usr/local/ 目录下,将解压后的boost包重命名方便管理。

useradd -s /sbin/nologin mysql
tar zxvf mysql-5.7.17.tar.gz -C /opt/
tar zxvf boost_1_59_0.tar.gz -C /usr/local/
cd /usr/local/
mv boost_1_59_0 boost

3.在配置过程中,可以将默认使用的字符集设置为utf8,并添加其他字符集的支持。

cd mysql-5.7.17/
-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        //适用于UTF-8字符集的通用规则//
-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             //指定Boost库的位置,5.7版本必须添加这个参数
-DWITH_SYSTEMD=1

------注意:如果在CMAKE的过程中有报错,当报错解决后,需要把源码目录中的CMakeCache.txt文件删除,然后再重新CMAKE,否则错误依旧------------

4.编译并安装

make          
make install

------注意:如果在make加载过程中,中途卡死,把虚拟机的内存设置为2G,再进行make编译//,如果再make编译过程中出现error报错,可用以下方法解决:下载mysql-boost-5.7包并进行解压,在进行配置,把boost函数库位置由-DWITH_BOOST=/usr/local/boost 改为-DWITH_BOOST=boost

5.对数据库的目录进行权限设置

chown -R mysql.mysql /usr/local/mysql/

6.在MySQL源码目录中的support-files文件夹下,建立MySQL系统的/etc/my.cnf配置文件。

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

7.修改/etc/my.cnf即主配置文件的属主和属组

chown mysql:mysql /etc/my.cnf

8.设置环境变量,为了方便在任何目录下使用mysql命令,需要在/etc/profile设置环境变量。

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

9.初始化数据库,为了能够正常使用MySQL数据库系统,应以运行用户mysql的身份执行初始化,指定数据存放目录等。

cd /usr/local/mysql/
bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

10.添加mysqld系统服务,以便通过systemctl进行管理,可以直接使用源码包中提供的服务脚本。找到usr/lib/systemd/system/文件夹下的mysql.server脚本文件,将其复制到/usr/lib/systemd/目录下,并改名为system,然后再进行重新加载。

cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl daemon-reload    //重新加载系统服务管理模块

11.启动mysqld服务并查看TCP3306端口是否开启

systemctl start mysqld
netstat -anpt | grep 3306
[[email protected] mysql]# netstat -anpt | grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN      23765/mysqld        

12.关闭防火墙

systemctl stop firewalld.service 
setenforce 0

13.设置数据库的root登录密码

mysqladmin -u root -p password "abc123"

14.登录数据库

[[email protected] mysql]# mysql -u root -p
Enter password:       
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 4
Server version: 5.7.17 Source distribution

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;‘ or ‘h‘ for help. Type ‘c‘ to clear the current input statement.

mysql> grant all privileges on *.* to ‘root‘@‘%‘ identified by ‘abc123‘ with grant option;
Query OK, 0 rows affected, 1 warning (0.00 sec)

15.查看数据库结构

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

以上是关于在Centos7上搭建Mysql数据库的主要内容,如果未能解决你的问题,请参考以下文章

Centos7搭建基于GTID的MySQL主从复制架构

基于centos7搭建MySQL数据库

mysql 高性能搭建1: Centos7+Mysql7.5搭建主从复制

centos7 搭建WordPress详细步骤

Centos7 搭建lnmp环境 (centos7+nginx+MySQL5.7.9+PHP7)

centos7 mysql cluster集群搭建基于docker