MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言–结构化查询语言(SQL)进行数据库管理。
MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。
MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。
MySQL的海豚标志的名字叫“sakila”,它是由MySQL AB的创始人从用户在“海豚命名”的竞赛中建议的大量的名字表中选出的。
MySQL,虽然功能未必很强大,但因为它的开源、广泛传播,导致很多人都了解到这个数据库。
MySQL是一款深受欢迎的开元关系型数据库
两者区别
第一阵营: 5.0-5.1阵营,可说是早期产品的延续
第二阵营: 5.4-5.7阵营, 整合了MySQL AB公司、社区和第三方公司开发的存储引擎,从而提高性能
第三阵营: 6.0-7.1阵营,就是MySQL Cluster版本为适应新时代对数据库的集群需求而开发
准备MySQL和boost压缩包
安装mysql环境依赖包环境准备
yum -y install gcc \
gcc-c++ \
ncurses \ #字符终端的包,方便终端操作
ncurses-devel \
bison \ #函数库
cmake #没有configure,使用cmake
useradd -s /sbin/nologin mysql #创建程序型用户
编译安装
解压mysql-boost-5.7.20.tar.gz到opt目录下
进入mysql1-57.20目录
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ #sock;通讯文件,连接数据库,通讯协议的载体
-DSYSCONFDIR=/etc \ #配置目录指向etc
-DSYSTEMD_PID_DIR=/usr/local/mysql \ #pid文件位置
-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=/usr/local/boost \ #/指定boost位置
-DWITH_SYSTEMD=1 #守护进程
make & make install
编辑配置文件
cd /etc
vim 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
设置环境变量
echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
echo 'export PATH' >> /etc/profile
source /etc/profile
初始化数据库
[root@localhost local]# cd /usr/local/mysql/
[root@localhost mysql]# bin/mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
[root@localhost mysql]# cp usr/lib/systemd/system/mysqld.service /lib/systemd/system/
数据库开启
[root@localhost mysql]# systemctl start mysqld.service
[root@localhost mysql]# netstat -natp | grep 3306
tcp6 0 0 :::3306 :::* LISTEN 41525/mysqld
设置密码登录数据库
设置MySQL密码
[root@localhost mysql]# mysqladmin -u root -p password
#第一次没密码直接回车输入新密码
登录数据库查看
[root@localhost mysql]# mysql -u root -p
MySQL添加用户允许远程访问
grant all privileges on *.* to 创建的用户名 @"%" identified by "密码";