mysql5.7的安装笔记

前言

mysql安装方法有很多种,这里主要记录windows系统zip格式安装和 linux 源码编译的安装

  • windows版 mysql大概是5.7.11以上的绿色版 解压就后没有了my.default的配置文件如果没有就手动创建
  • linux编译需要boost库(推荐),等,官网也有带boost库的mysql源码文件编译时可以不指明boost库
  • 关于编译参数路径要统一,my.cnf中可以指明启动服务加载的pid,sock。但客户端连接时会有找不到sock的错误,如果确定sock生成尝试在-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock 编译的路径下创建sock的软连接。
  • linux mysql安装后通过basedir/bin/mysqld在datadir/初始化各种实例
  • mysql加载my.cnf 顺序为:/etc; ?/etc/mysql; ?/usr/local/mysql/etc/ 其它位置需要使用 #-defaults-file来指明。
  • 使用systemctl 管理mysql启动时可能会有连接超时的错误 ,把type=forking和PIDFile=path注释掉就好
  • centos7 最好先关闭防火墙。会有bad port的错误

准备

windows卸载

  • windows版 /bin net stop msyql --停止服务
  • mysqld --remove [mysql] --卸载服务

linux卸载

  • #rpm -qa| grep -i mysql --查看通过rpm 安装的mysql
  • #yum -y remove mysql-* --卸载
  • #find / -name mysql --查找mysql相关文件
  • # rm -rf file --逐条删除或者 #find / -name mysql|xargs rm -rf
  • #rpm -qa|grep mariadb --查找系统自带的 mariadb相关包
  • #rpm -e file --卸载
安装
  1. windows系统安装
  • 解压文件
  • 在解压的根目录创建mysql启动文件 my.ini如下:
    [mysqld]
    basedir=yourpath
    datadir=yourpath --data目录必须为空,也可删除
    port=3306
    character_set_server=utf8
  • /bin/ mysqld --initialize-insecure --免密码初始化
  • mysqld --install 服务名 --完成安装
  • mysqld --remove 服务名 --卸载
  1. 基于centos7系统安装(大致分两步)

安装依赖

  • 下载1.59以上的boost库最好不要使用yum安装,版本太低。下载后不安装也行,记住路径,编译时要用
  • yum install -y gcc gcc-c++ ncurses ncurses-devel bison libgcrypt perl cmake

第一步 解压文件,创建编译脚本,编译安装

  • #tar -xf mysql-5.7.20.tar.gz --解压文件
  • #cd mysql-5.7.20(解压的目录)
  • #vi cmake.sh ----创建编译脚本写入如下参数准备编译详情

!/bin/bash
cmake .
-DCMAKE_INSTALL_PREFIX=/home/mysql \ -- 安装的目录
-DMYSQL_DATADIR=/home/mysql/data \ --数据库目录
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock \ --客户端连接的sock文件
-DSYSCONFDIR=/home/mysql/etc \ --配置文件目录
-DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DMYSQL_TCP_PORT=3306 \ --端口
-DDEFAULT_CHARSET=utf8 \ --字符集
-DDEFAULT_COLLATION=utf8_general_ci
-DWITH_EXTRA_CHARSETS=all
-DDOWNLOAD_BOOST=1 \ --下载boost库,如果带boost库的源码可以不下载
-DWITH_BOOST=yourboost \ --指定你下载的boost库路径网上说可以不用的,我没有成功
-DMYSQL_USER=mysql --用户

mysql5.7的安装笔记_第1张图片
image.png

  • #bash cmake.sh --执行脚本如图表示成功
    mysql5.7的安装笔记_第2张图片
    image.png
  • #make && make install --进行编译安装如果编译失败就删掉编译缓存的文件重新编译
    mysql5.7的安装笔记_第3张图片
    image.png
  • 到此mysql安装的目录会有相关文件生成,查看bin目录会有很多可执行的脚本,通过mysql/mysqld/mysqladmin/mysql_safe 等等执行脚本完成全部安装,配置多实例。
    mysql5.7的安装笔记_第4张图片
    image.png

第二步 创建用户,用户组,和相关目录准备mysql初始化/配置多实例

  • #groupdd mysql --创建mysql用户组
  • #useradd -g mysql mysql --为mysql组添加mysql用户 (可省略)
  • #mkdir -p mysql/{data,logs,etc} --创建mysql 安装目录,数据库初始化数据目录,日志目录,配置文件目录
  • #chown -R mysql:mysql /home/mysql --把安装目录交给mysql用户
  • #vi /home/mysql/my.cnf --编写my.cnf脚本

[mysqld]
port=3306
dasedir=/home/mysql --mysql安装目录
datadir=/home/mysql/data --mysql初始化目录
user=mysql
[client]
socket=/home/mysql/mysql.sock----指定端登录进来去哪里找sock文件

  • #cd bin --进入mysql安装的bin目录
  • #./mysqld --initialize --user=mysql --basedir=/home/mysql --datadir=/home/mysql/data -- 执行数据库初始化
    mysql5.7的安装笔记_第5张图片
    image.png
  • # ./mysqld --defaults-file=/home/mysql/my.cnf --测试是否可以启动mysql服务
    image.png

还可以使用 ./mysql_safe --user=mysql --defaults-file=/home/mysql/my.cnf 或者在 /etc/init.d目录创建mysql.server的软连接时候用service start/stop来启动(并不推荐)mysql4种启动方法

  • #./mysqladmin -uroot -p shutdown --停止服务完成后续步骤。

如果无法回到命令行使用 Ctrl+\ /即可 此时mysqld的服务就结束了,并不会后台运行。

  • #vi /usr/lib/systemd/system/mysqld.service --编写mysql启动脚本使用systemd 来管理(推荐)

[Unit] --主要包括对服务的说明可省略
Description=MySQL Server --描述
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target --描述服务类别
[Service] --是服务的关键 execstart/stop/reload指定启动/停止/重启,
Type=forking --后台的形式运行
PIDFile= --存放pid的位置
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/home/mysql/my.cnf --启动
ExecReload= --重启
ExecStop= --停止
LimitNOFILE = 5000
User=mysql
Group=mysql
[Install] --安装服务的相关设置
WantedBy=multi-user.target

mysql5.7的安装笔记_第6张图片
image.png

  • #systemctl daemon-reload -- 加载更改的单元
  • #systemctl enable mysqld --开机启动
  • #systemctl start mysqld --启动
mysql5.7的安装笔记_第7张图片
image.png

到此mysql已经安装完成!

登陆

开启公共端口 ,创建用户远程登陆

  • # firewall-cmd --zone=public --add-port=3306/tcp --permanent
  • # firewall-cmd --reload

修改密码,添加用户远程登陆详情

  • set password = password('yourpassword')
    image.png
  • 如果不是用初始密码登陆比如--skip-grant-tables 参数 可以如下修改
    image.png

    image.png
  • # show variables like '%char%'; //查看字符集
  • # set character_set_client/.....=utf8 //如果配置文件中错误可以通过命令设置
  • #show databases;
  • #use mysql;
  • #show tables;
  • # select host,user form user; --查看用户登陆的权限
    mysql5.7的安装笔记_第8张图片
    image.png
  • #grant all privileges on databasename.tablename to 'username'@'host' identified by 'youpassword' --创建username用户在databasename库tablename表 进行增删该查操作。databasename/tablename 用 * 代替,代表所有库/表。host为% 允许所有连接。
  • #flush privileges --刷新
image.png
  • 到此mysql 修改密码远程登陆已经完成。

配置多实例

  • #cd /home/mysql/data/ -- 进入datadir 的目录
  • #mkdir -p data3307/{data,log} --创建3307实例的data目录
  • #cd data3307 && vi my.cnf --创建my.cnf 文件,指定basedir,datadir,pid,sock的路径
    mysql5.7的安装笔记_第9张图片
    image.png
  • #chown -R mysql:mysql data3307 --更改为mysql为所有者和组
  • 进入basedir/bin下 执行初始化 同上,注意加载的是另一个my.cnf
  • 通过.sock文件来登陆不同的实例
    mysql5.7的安装笔记_第10张图片
    image.png
  • vi /usr/lib/systemd/system/mysqld3307.service 写入启动的service单元
    mysql5.7的安装笔记_第11张图片
    image.png
  • #firewall-cmd --zone=public --add-port=3307/tcp --permanent(可省略) --开启端口
  • #systemctl daemon-reload /enable/start --开机启动
    mysql5.7的安装笔记_第12张图片
    image.png
  • 可以重复以上,配置更多实例 到此mysql5.7.20 已经全部结束!

错误总结

  • sock 连接错误!检查编译的路径是否和配置统一。或者在错误的路径创建目标sock的软连接
    image.png
  • bad port的错误!暂时未解决
    image.png
  • 如果启动连接超时,日志又没有报错则注释掉Tyep 、Pidfile 试试。
    mysql5.7的安装笔记_第13张图片
    image.png

到此结束后续更新 ---

你可能感兴趣的:(mysql5.7的安装笔记)