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 && make?install?
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