目录
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
一、编码安装mysql 5.7
1.下载安装包
下载mysql 5.7的编码安装包(可以在官网下载),并解压
2.安装编译所需要的环境
yum install -y cmake
yum install -y ncurses-devel
yum install -y gcc-c++
yum install -y bison
3.编译安装
cd /root/mysql-5.7.31
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock -DWITH_INNOBASE_STORAGE_ENGINE=1 -DSYSCONFDIR=/etc -DENABLED_LOCAL_INFILE=1 -DWITH_EXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=/root/mysql-5.7.31/boost/boost_1_59_0
make ##时间较长
make install
4.更改配置文件、建立数据目录、建立mysql用户、复制启动脚本
vim /etc/my.cnf ##编辑主配置文件
[mysqld]
datadir=/data/mysql
socket=/data/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
collation-server=utf8mb4_general_ci
[mysqld_safe]
log-error=/data/mysql/mariadb.log
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
mkdir -p /data/mysql
useradd -M -d /data/mysql/ -s /sbin/nologin mysql
chown mysql.mysql /data/mysql ##更改权限
5.复制启动脚本、设置全局变量
cp /root/mysql-5.7.31/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
cd
vim .bash_profile
PATH=$PATH:$HOME/bin:/usr/local/php/bin/:/usr/local/mysql/bin/
source .bash_profile
6.mysql初始化、开启mysql、更改root用户的密码
mysqld --initialize --user=mysql ##初始化
/etc/init.d/mysqld start ##启动
mysql_secure_installation
初始化后会随机给root一个密码
启动数据后更改密码
更改完毕后即可用自己设置的密码登陆
二、利用php实现mysql的图形化操作
先在官万下载phpMyAdmin的压缩包
unzip phpMyAdmin-5.0.2-all-languages.zip ##解压
cp -r phpMyAdmin-5.0.2-all-languages /usr/local/nginx/html/phpmyadmin ##复制到nginx的默认发目录
vim /usr/local/php/etc/php.ini ##编辑php-fpm的配置文件
[Pdo_mysql]
; Default socket name for local MySQL connects. If empty, uses the built-in
; MySQL defaults.
pdo_mysql.default_socket=/data/mysql/mysql.sock ##添加mysql路径
; Default socket name for local MySQL connects. If empty, uses the built-in
; MySQL defaults.
; http://php.net/mysqli.default-socket
mysqli.default_socket = /data/mysql/mysql.sock ##添加mysql路径
nginx ##开启nginx,须确保nginx可php,并且默认发文件是index.php
systemctl enable --now php-fpm.service ##开启php-fpm,并设置开机自启
用浏览器访问172.25.0.1/phpmyadmin即可管理数据库 :
三、mysql 主从复制
配置一下所要用的实验环境,给server2和server3也都安装mysql
在server1中,将mysql所需要的文件给server2和server3都复制一遍:
scp -r /usr/local/mysql server2:/usr/local/
scp /etc/my.cnf server2:/etc/
scp /etc/init.d/mysqld server2:/etc/init.d/
scp -r /usr/local/mysql server3:/usr/local/
scp /etc/my.cnf server3:/etc/
scp /etc/init.d/mysqld server3:/etc/init.d/
在server2和server3中,准备启动mysql :
mkdir -p /data/mysql
useradd -M -d /data/mysql -s /sbin/nologin mysql
chown mysql.mysql /data/mysql/
vim .bash_profile
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin
source .bash_profile
mysqld --initialize --user=mysql
/etc/init.d/mysqld start
mysql_secure_installation
1.异步复制
1)使用二进制日志文件位置进行异步复制
a.我们先来实现server2复制server1的数据。即server1是主,server2是从
server1中:
vim /etc/my.cnf
[mysqld]
datadir=/data/mysql
socket=/data/mysql/mysql.sock
symbolic-links=0
collation-server=utf8mb4_general_ci
log-bin=mysql-bin ##启用二进制日志记录
server-id=1 ##复制拓扑中的每个服务器都必须配置一个唯一的服务器ID,用于标识复制拓扑中的