## Mysql的安装与配置
#### 安装mysql相关的依赖包
~~~
yum install -y cmake make gcc gcc-c++ ncurses-devel
~~~
### 1. 创建msyql用户和组
~~~
groupadd mysql # 创建一个组
useradd mysql -s /sbin/nologin -g mysql#创建一个用户
~~~
### 2. 创建必要目录并授权
~~~
# /usr/local/mysql
mkdir /usr/local/mysql
mkdir -p /mysql/mysql_data
# 授权
chown -R mysql:mysql /mysql/
~~~
### 3. 解压源码包
~~~
tar -zxvf mysql-5.7.21.tar.gz # 解压
cd mysql-5.7.21 # 切换目录
~~~
### 4. 查看安装说明文件 INSTALL
~~~
cat INSTALL
~~~
![](https://box.kancloud.cn/1c6796bdfe77ffd1bffcaf4d45f67e0e_1151x389.png)
通过文档可以知道,Mysql5.7编译需要使用cmake进行编译,所以首先需要先安装一下cmake
~~~
yum install -y cmake
~~~
### 5. boost库安装
> 在msyql的安装说明文档中有相关的介绍,Mysql5.7所需要的boost版为:1.59.0,
> 官方网站:http://www.boost.org/
> 下载地址:http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
> 安装目录:/usr/local/boost。下载后,解压到该目录即可。
> 建议在cmake阶段添加参数-DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost即可
如果安装的版本不对的话,会报错。
### 6. 配置安装选项(预编译)
~~~
# 切换到mysql-5.7.21源码目录下
# cmake
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DMYSQL_DATADIR=/mysql/mysql_data
-DDOWNLOAD_BOOST=1
-DWITH_BOOST=/usr/local/boost
## 实际执行时,需要调成一行
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/mysql/mysql_data -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost
~~~
参数说明
-DCMAKE_INSTALL_PREFIX:安装路径
-DMYSQL_DATADIR:数据存放目录
-DWITH_BOOST:boost源码路径
-DSYSCONFDIR:my.cnf配置文件目录
-DEFAULT_CHARSET:数据库默认字符编码
-DDEFAULT_COLLATION:默认排序规则
-DENABLED_LOCAL_INFILE:允许从本文件导入数据
-DEXTRA_CHARSETS:安装所有字符集
### 7. 编译安装
~~~
make && make install
~~~
到这里,mysql的安装就完成了
mysql的配置
#### 1. mysql配置
由于安装的是msyql5.7.21,所以源码包中并没有带默认配置文件。在这里暂时可以不做配置,直接往后面操作。如果安装的是其它的版本,会带有配置文件,复制一个,做出相应的调整即可。
在这里,就不使用了配置文件了,首先检查一下/etc下是否有my.cnf, 如果有,直接删除或者作备份后删除。
当然,在这里也可以手动创建一个配置文件,vim /etc/my.cnf,其内容如下,配置内容可以根据实际情况自行调整
~~~
vim /etc/my.cnf
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
basedir=/usr/local/mysql
datadir=/mysql/mysql_data
socket=/tmp/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
#不区分大小写
lower_case_table_names = 1
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
max_connections=5000
default-time_zone = '+8:00'
~~~
#### 2. 初始化数据库
~~~
# 初始化MySQL,切记--defaults-file=/etc/my.cnf要放在参数的第一位,初始化信息可以在MySQL的errorlog中查看,并且在errorlog会生成一个root的随机密码,该随机密码仅仅为root@localhost用户所有。
# 初始化数据库
mysqld --initialize --explicit_defaults_for_timestamp
~~~
在初始化数据库时,可能会报如下错误:
![](https://box.kancloud.cn/a0f6ab554743557fcb91f73578ac1caa_1023x114.png)
这是因为设置安装选项时,编码设置有问题,在这里重新设置一下即可。
~~~
./mysqld --initialize --explicit_defaults_for_timestamp --character-set-server=utf8
~~~
初始化成功后,会给出如下提示:并给出了随机生成的密码,这个不需要理会
![](https://box.kancloud.cn/e892391a3db6999f0e8ad2f5f865ead7_967x399.png)
初始化数据库时,如果出现如下错误:
![](https://box.kancloud.cn/9b68aaaf641b6976799dbb0886a05051_1010x189.png)
> 出现这个问题 ,是因为数据库的数据存放目录,里面不为空,这里进行数据库数据文件存放目当,将其中的内容清空即可。
### 3. 安装ssl,可指定文件生成路径,默认为DATA里面
~~~
# 执行 `安装目录/bin/mysql_ssl_rsa_setup`
/usr/local/mysql/bin/mysql_ssl_rsa_setup
~~~
### 4. 启动mysql
~~~
/usr/local/mysql/support-files/mysql.server start
~~~
![](https://box.kancloud.cn/b250491a682b15b6d3ef1118d570794c_864x87.png)
### 5. 登录并设置新密码
~~~
cd /usr/local/mysql/bin
./mysql -uroot -p
#按提示输入随机生成的密码,也可以按照之前的方式重置一下密码,建议大家使用之前的方法重置密码。
~~~
#### 重置密码
1. 停止mysql服务
~~~
killall mysqld
~~~
2. 绕过权限表登录mysql
~~~
/usr/local/mysql/bin/mysqld_safe --skip-grant-tables
~~~
3. 更新root密码
~~~
#选择数据库
mysql>use msyql
#更新root密码
mysql>UPDATE user SET authentication_string=PASSWORD("new password") WHERE user='username';
# 刷新权限表
mysql>flush privileges;
~~~
4. 重启msyql,并登录msyql
~~~
#停止mysql
killall mysqld
# 启动mysql
/usr/local/mysql/support-files/mysql.server start
# 使用新密码登录mysql
/usr/local/mysql/bin/mysql -uroot -p
# 按提示输入新密码即可
~~~
登录之后,可能会提示如下错误:
![](https://box.kancloud.cn/7c88f77c3b89e986625656d9103119ae_980x74.png)
解决办法,执行如下命令:
~~~
quit # 退出mysql
killall mysqld
/usr/local/mysql/bin/mysqld_safe --skip-grant-tables
mysql>flush privileges;
mysql>set password for 'root'@'localhost' =password('111111');
mysql>flush privileges;
~~~
### 6. 设置远程登录
可按照之前的方式进行设置,在这里,咱们直接新添加一个远程用户yfketang
~~~
# 添加远程用户
mysql>grant all privileges on *.* to yfketang@'%'identified by '123456';
#刷新权限
mysql>flush privileges;
~~~
到这里就可以使用yfketang用户远程登录mysql了
### 7. 添加系统服务,并设置开机启动
1. 复制启动脚本到 /etc/init.d中
~~~
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
~~~
执行之后,重启mysql服务就可以执行下边的操作了
~~~
service mysqld restart
~~~
2. 添加到系统服务
~~~
chkconfig --add mysqld
chkconfig mysqld on
~~~
到这里,mysql的安装就完成了。
- 前言准备
- Linux新服务器的前期配置
- 认识linux下的Web服务器
- Linux的基本配置
- LNMP一键安装包快速部署web服务器
- LAMP服务器环境部署
- LAMP服务器管理
- LNMP服务器环境部署
- LNMP服务器管理
- lnmp一键安装包-常见问题
- 使用包管理器快速部署环境
- 包管理器快速部署LAMP服务器环境
- 升级php和mysql版本
- 包管理器快速部署LNMP服务器环境
- 使用源码包部署Linux服务器web环境
- 编译LAMP服务器环境部署
- apache安装与配置
- mysql的安装与配置
- PHP的安装与配置
- 编译LNMP服务器环境部署
- nginx服务启动脚本
- 源码安装常见问题
- Centos6与Centos7的区别
- 默认控制系统服务工具不同
- 设置开机启动的方式不同
- 编写service启动脚本
- 编写systemctl启动脚本
- 服务器安全
- 隐藏服务器信息
- Linux服务器防火墙设置
- 防火墙设置脚本
- 邮件发送
- 任务脚本的编写
- 服务器磁盘和服务器健康状态脚本
- 服务器登录报警脚本
- 数据库备份脚本
- 定时任务及应用
- 常见问题
- linux中使用ping命令不同的问题
- Linux中无法发送邮件
- mailx通过ssl方式发送邮件
- Mysql配置文件
- Linux TCP/UDP 常用端口
- Linux常见命令
- 系统信息
- 关机 (系统的关机、重启以及登出 )
- 文件和目录
- 文件搜索
- 挂载一个文件系统
- 磁盘空间
- 用户和群组
- 文件的权限
- 文件的特殊属性
- 打包和压缩文件
- RPM包
- YUM软件包升级器
- DEB 包 (Debian, Ubuntu 以及类似系统)
- APT 软件工具 (Debian, Ubuntu 以及类似系统)
- 查看文件内容
- 文本处理
- 字符设置和文件格式转换
- 文件系统分析
- 初始化一个文件系统
- SWAP文件系统
- 备份
- 光盘
- 网络-(以太网和WIFI无线)
- vi命令
- cut命令 截取
- Mysql
- MySQL备份-增量备与恢复命令实战
- mysqlbinlog
- mysql的安装
- 卸载mysql
- mysql多实例安装
- mysql 常用基础命令操作
- linux安装jdk、rpm安装mysql
- linux制作本地yum源
- shell脚本