首页 > 数据库 >mysql 5.7 编译安装及多实例部署

mysql 5.7 编译安装及多实例部署

时间:2023-01-04 17:34:53浏览次数:69  
标签:5.7 -- app 编译 mysqld usr mysql local

一、编译安装mysql数据库

yum -y install \

gcc \

gcc-c++ \

make \

pcre-devel \

expat-devel \

perl

yum -y install \

ncurses \

ncurses-devel \

bison \

cmake

useradd -s /sbin/nologin mysql

tar xf mysql-boost-5.7.20.tar.gz

cd mysql-5.7.20/

cmake \

-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 \

-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=boost \

-DWITH_SYSTEMD=1

make && make install

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

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

chown mysql:mysql /etc/my.cnf

echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile (可以识别mysql中的命令)

echo 'export PATH' >> /etc/profile

source /etc/profile

初始化数据库:

cd /usr/local/mysql/

bin/mysqld \

--initialize-insecure \

--user=mysql \

--basedir=/usr/local/mysql \

--datadir=/usr/local/mysql/data

cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/ 复制系统启动脚本模板

systemctl daemon-reload 刷新识别启动脚本

systemctl start mysqld

netstat -anpt | grep 3306

systemctl enable mysqld

mysqladmin -u root -p password "abc123" //给root账号设置密码

登陆:

mysql -u root -p

授权远程登录:

grant all privileges on *.* to 'root'@'%' identified by 'abc123' with grant option;

flush privileges;

二、在编译安装的基础上部署mysql多实例,如果一台服务器上只需要一个      mysql 则不需要部署多实例。多实例是为了节省服务器资源。

1、创建目录

mkdir -p /app/mysql3306/data

mkdir -p /app/mysql3307/data

chown mysql:mysql /app/mysql


2、修改配置文件

mv /etc/my.cnf /etc/my.cnf_bak

cd /etc

cp my.cnf_bak ./my3306.cnf

vi my3306.cnf


[client]

port = 3306

default-character-set=utf8

socket = /app/mysql3306/mysql.sock


[mysql]

port = 3306

default-character-set=utf8

socket = /app/mysql3306/mysql.sock


[mysqld]

user = mysql

basedir = /usr/local/mysql

datadir = /app/mysql3306/data

port = 3306

character_set_server=utf8

pid-file = /app/mysql3306/mysqld.pid

socket = /app/mysql3306/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


cp my3306.cnf ./my3307.cnf

vi my3307.cnf

[client]

port = 3307

default-character-set=utf8

socket = /app/mysql3307/mysql.sock


[mysql]

port = 3307

default-character-set=utf8

socket = /app/mysql3307/mysql.sock


[mysqld]

user = mysql

basedir = /usr/local/mysql

datadir = /app/mysql3307/data

port = 3307

character_set_server=utf8

pid-file = /app/mysql3307/mysqld.pid

socket = /app/mysql3307/mysql.sock

server-id = 2


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


3、增加启动文件

mv /usr/lib/systemd/system/mysqld.service mysqld.service_bak

cd /usr/lib/systemd/system/

cp mysql.service_bak mysqld3306.service

cp mysql.service_bak mysqld3307.service

vi mysqld3306.service

[Unit]

Description=MySQL Server

Documentation=man:mysqld(8)

Documentation=​​http://dev.mysql.com/doc/refman/en/using-systemd.html​

After=network.target

After=syslog.target


[Install]

WantedBy=multi-user.target


[Service]

User=mysql

Group=mysql


Type=forking


PIDFile=/app/mysql3306/mysqld.pid


# Disable service start and stop timeout logic of systemd for mysqld service.

TimeoutSec=0


# Execute pre and post scripts as root

PermissionsStartOnly=true


# Needed to create system tables

#ExecStartPre=/usr/local/mysql/bin/mysqld_pre_systemd_3306 3306


# Start main service

ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my3306.cnf --daemonize --pid-file=/app/mysql3306/mysqld3306.pid $MYSQLD_OPTS


# Use this to switch malloc implementation

EnvironmentFile=-/etc/sysconfig/mysql


# Sets open_files_limit

LimitNOFILE = 5000


Restart=on-failure


RestartPreventExitStatus=1


PrivateTmp=false

vi mysqld3307.service

[Unit]

Description=MySQL Server

Documentation=man:mysqld(8)

Documentation=​​http://dev.mysql.com/doc/refman/en/using-systemd.html​

After=network.target

After=syslog.target


[Install]

WantedBy=multi-user.target


[Service]

User=mysql

Group=mysql


Type=forking


PIDFile=/app/mysql3307/mysqld.pid


# Disable service start and stop timeout logic of systemd for mysqld service.

TimeoutSec=0


# Execute pre and post scripts as root

PermissionsStartOnly=true


# Needed to create system tables

#ExecStartPre=/usr/local/mysql/bin/mysqld_pre_systemd_3307 3307


# Start main service

ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my3307.cnf --daemonize --pid-file=/app/mysql3307/mysqld3307.pid $MYSQLD_OPTS


# Use this to switch malloc implementation

EnvironmentFile=-/etc/sysconfig/mysql


# Sets open_files_limit

LimitNOFILE = 5000


Restart=on-failure


RestartPreventExitStatus=1


4、初始化

mysqld --defaults-file=/etc/my3306.cnf --initialize --user=mysql --datadir=/app/mysql3306/data

mysql 5.7 编译安装及多实例部署_mysql

mysqld --defaults-file=/etc/my3307.cnf --initialize --user=mysql --datadir=/app/mysql3307/data

mysql 5.7 编译安装及多实例部署_d3_02

要记住两个临时密码

systemctl start mysqld3306

systemctl start mysqld3307

会卡在,ctrl+c 退出即可

netstat -anptu | grep "mysqld"

tcp6 0 0 :::3307 :::* LISTEN 23681/mysqld

tcp6 0 0 :::3306 :::* LISTEN 23720/mysqld

5、修改登录密码

mysql3306

mysqladmin -p -S /app/mysql3306.sock password #路径要和 /etc/my3306.cnf 里的 socket路径一样

输入临时密码

输入新密码

mysqladmin -p -S /app/mysql3307.sock password

输入临时密码

输入新密码

6、测试登录

mysql -u root -p -S /app/mysql3306.sock

输入密码

mysql -u root -p -S /app/mysql3307.sock

输入密码
















标签:5.7,--,app,编译,mysqld,usr,mysql,local
From: https://blog.51cto.com/u_15596926/5988737

相关文章

  • MySQL event事件,定时按年份动态创建表
    参考资料:1、MySQL事件(定时任务):https://blog.51cto.com/u_15549234/5138457;2、mysql创建存储过程语法(MySQL创建存储过程sql语句):https://www.gaojipro.com/a/108616;3、my......
  • mysql性能分析之隐式类型转化
    之前遇到过一个问题,建表时将字段status的类型设置为varchar,插入数据时,该字段的值只有0和1两种情况,在该字段上建立索引,使用wherestatus=1查询时却并没有走索引。如下所示:1......
  • MySQL------单行函数汇总
    基本函数函数用法举例ABS(x)返回x的绝对值ABS(-2)=2;ABS(13)=13SIGN(X)返回X的符号。正数返回1,负数返回-1,0返回0SIGN(-265)=-1;SIGN(123)=1PI()......
  • mysql show processlist的使用
    showfullprocesslist用来查看当前线程处理情况,具体信息请参考官网:https://dev.mysql.com/doc/refman/5.7/en/show-processlist.htmlshowfullprocesslist返回的结果......
  • Mysql错误问题记录
    ①Incorrectstringvalue:'\xE6\x94\xBE\xE5\xA4\xA7...'forcolumn'name'atrow1Query……原因:编码不匹配。数据库是latin1编码,而插入的中文字符串是utf-8编码。......
  • ODBC连接mysql
    配置/etc/odbc.ini执行命令:isqlfreeswitchfreeswitch123456-v第一个报错:[08S01][unixODBC][MySQL][ODBC5.3(w)Driver]Can'tconnecttolocalMySQLserverthrou......
  • 关于新服务器安装Mysql服务后注意事项:1.表名区分大小写 2.日期中不允许出现值为0
    新购入一台Linux服务器,将项目部署至服务器,项目出现问题记录如下:1.项目使用JPA,实例类中表名为大写,JPA查询显示该表不存在,原因是Mysql设置中默认表名区分大小写showvari......
  • MySQL删除有外键关联的表
    MySQL删除有外键关联的表现象:Cannotdeleteorupdateaparentrow:aforeignkeyconstraintfails原因:在删除表时,删除的表与另外一张表存在外键关联解决:方案一......
  • MySQL 删除时 Data truncation Truncated incorrect DOUBLE value
    MySQL删除时Datatruncation:TruncatedincorrectDOUBLEvalue数据库在删除的时候会做数据类型校验,将字段值转换为你传进去的类型,发现不能转换的就会报错......
  • Mysql5.7的初始密码更改
    软件版本的变化真是让人兴奋……Linux服务器决定安装使用mysql5.7了。愉快的去官网下载安装包:https://dev.mysql.com/downloads/mysql/解决完所有依赖安装……执行sys......