Mysql 编译安装部署

环境:

172.20.26.198(Centos7.6) 源码安装Mysql-5.7

大概步骤如下:

1、上传mysql-5.7.28.tar.gz 、boost_1_59_0.tar 到/usr/src 目录下

2、安装依赖

3、cmake

4、make && makeinstall

5、cp support-files/mysql.server my.cnf ,编辑my.cnf文件,添加数据目录及参数

6、创建/data/mysql57目录,并授权mysql可写权限,创建mysql用户

7、初始化 /usr/local/mysql57/bin/mysqld –initialize –user=mysql

datadir=/data/mysql57 \

–basedir=/usr/local/mysql57/

8、cp support-files/mysql.server /etc/init.d/mysqld ,将启动脚本拷贝到/etc/init.d目录下,命名为mysqld,并检查脚本是否有执行权限

9、启动mysql 服务 /etc/init.d/mysqld57 start

10、配置环境变量

11、登录及管理数据库

具体操作如下:

1、上传mysql-5.7.28.tar.gz 、boost_1_59_0.tar #到/usr/src 目录下,并解压

[root@localhost ~]# cd /usr/src/

[root@localhost src]# ll

总用量 0

drwxr-xr-x. 2 root root 6 4月 11 2018 debug

drwxr-xr-x. 2 root root 6 4月 11 2018 kernels

[root@localhost src]#rz #上传mysql-5.7.28.tar.gz

Boost库是为C++语言标准库提供扩展的一些C++程序库的总称,由Boost社区组织开发、维护

[root@localhost src]#rz #上传 boost_1_59_0.tar

[root@localhost src]# ll #查看mysql-5.7.28.tar.gz 和 boost_1_59_0.tar已完成上传

[root@localhost src]# tar xf boost_1_59_0.tar.gz #解压 boost_1_59_0.tar 文件

[root@localhost src]# mv boost_1_59_0 /usr/local/boost #将解压后的boost_1_59_0

目录移动到/usr/local/boost

[root@localhost src]# tar xf mysql-5.7.28.tar.gz #解压mysql-5.7.28.tar.gz

[root@localhost src]# cd mysql-5.7.28

[root@localhost mysql-5.7.28]# ll

2、安装依赖:

[root@localhost src]#yum install gcc ncurses-devel libaio bison gcc-c++ git

cmake ncurses-devel openssl openssl-devel -y

3、在/usr/src/mysql-5.7.28 #目录下,执行cmake 命令进行预编译

[root@localhost mysql-5.7.28]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql57 \

> -DMYSQL_UNIX_ADDR=/data/mysql57/mysql.sock \

> -DMYSQL_DATADIR=/data/mysql57 \

> -DSYSCONFDIR=/usr/local/mysql57 \

> -DMYSQL_USER=mysql \

> -DMYSQL_TCP_PORT=3307 \

> -DWITH_XTRADB_STORAGE_ENGINE=1 \

> -DWITH_INNOBASE_STORAGE_ENGINE=1 \

> -DWITH_PARTITION_STORAGE_ENGINE=1 \

> -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

> -DWITH_MYISAM_STORAGE_ENGINE=1 \

> -DWITH_READLINE=1 \

> -DENABLED_LOCAL_INFILE=1 \

> -DWITH_EXTRA_CHARSETS=1 \

> -DDEFAULT_CHARSET=utf8 \

> -DDEFAULT_COLLATION=utf8_general_ci \

> -DEXTRA_CHARSETS=all \

> -DWITH_BIG_TABLES=1 \

> -DWITH_DEBUG=0 \

> -DENABLE_DTRACE=0 \

> -DDOWNLOAD_BOOST=1 \

> -DWITH_BOOST=/usr/local/boost

4、make && make install 进行编译和安装,根据机器配置高低,决定所需时间长短,一般在半个小时左右

[root@localhost mysql-5.7.28]# make && make install

成功完成make && make install 安装。

5、拷贝配置文件,cp support-files/mysql.server my.cnf ,编辑my.cnf文件,添加数据目录及参数

[root@localhost mysql57]# cp support-files/mysql.server my.cnf添加以下数据到my.cnf中

[mysqld]

basedir=/usr/local/mysql57/

datadir=/data/mysql57/

port=3306

pid-file=/data/mysql57/mysql.pid

socket=/data/mysql57/mysql.sock

[mysqld_safe]

log-error=/data/mysql57/mysql.log

6、创建/data/mysql57目录,并授权mysql可写权限,创建mysql用户

[root@localhost mysql-5.7.28]# mkdir -p /data/mysql57

[root@localhost mysql57]# useradd -s /sbin/nologin mysql

[root@localhost mysql57]# chown mysql . /data/mysql57/

[root@localhost mysql57]# chown -R mysql. /data/mysql57/

[root@localhost mysql57]# ll /data/mysql57 -d

drwxr-xr-x 2 mysql mysql 6 12月 26 15:26 /data/mysql57

7、初始化

进到/usr/local/mysql57目录下

[root@localhost mysql57]# /usr/local/mysql57/bin/mysqld –initialize –user=mysql –datadir=/data/mysql57 \ –basedir=/usr/local/mysql57/

因为初始化的时候选择的是“–initialize”,所以初始化完成后会生成一个随机密码,在最后一行,记得记录下来,如:AUCd3=fhb8f5,登录后修改密码,(如果设置为 –initialize-insecure,这样默认密码为空)

8、将启动脚本拷贝到/etc/init.d目录下,命名为mysqld

[root@localhost mysql57]# cp support-files/mysql.server /etc/init.d/mysqld

[root@localhost mysql57]# ll /etc/init.d/mysqld #检查脚本是否有执行权限

检查3306端口是否被占用

9、启动mysql 服务,检查3306端口

[root@localhost mysql57]# /etc/init.d/mysqld start

10、配置环境变量

当前环境变量

[root@localhost ~]# echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

[root@localhost ~]#

[root@localhost ~]# echo “export PATH=/usr/local/mysql57/bin:$PATH” >> /etc/profile

[root@localhost ~]# source /etc/profile #保存后,使环境变量生效

11、登录及管理mysql

[root@localhost ~]# mysql -uroot -pAUCd3=fhb8f5

登录后修改mysql密码,源码安装带初始密码的,使用alter来改密码

alter user user() identified by “123456”; # user()指是当前用户

exit 退出,用新密码登录

注:密码为空或者已知当前密码:将密码改为123456

登录mysql后:mysql> set password for root@localhost = password(‘123456’);

在shell终端执行:mysql -uroot -p -e “set password for root@localhost=password(‘123456’);”

在shell终端用mysqladmin:mysqladmin -uroot -p123 password 123456

源码安装mysql 5.7版本完成。

mysql> show databases; #查询数据库

创建jfedu数据库,设置字符集

mysql>create database jfedu charset=utf8;

如果用下面这条命令创建数据库,如果数据库已经存在就不会报错,否则会报错。

mysql>create database if not exists jfedu charset=utf8;

删除jfedu数据库

mysql> show databases;

如果使用下面这种方式删除数据库,如果数据库不存在就不会报错。

drop database if exists jfedu;

在jfedu数据库中创建t1表

mysql> use jfedu

Database changed

mysql> create table t1( id int(10) auto_increment primary key,

-> name varchar(20), job varchar(10) );

Query OK, 0 rows affected (0.02 sec)

查看所有表

mysql> show tables;

查看所有表的详细信息:

mysql> show table status\G

查看表结构

mysql> desc t1;

查看创建表的sql语句

mysql> show create table t1\G