mysql5.7.x 编译安装

一、卸载mariadb

[[email protected] ~]# rpm -qa mariadb*
mariadb-libs-5.5.44-2.el7.centos.x86_64
[[email protected] tools]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64
[[email protected] tools]# rpm -qa | grep mariadb

系统环境:

[[email protected] ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
[[email protected] ~]# uname -r
3.10.0-327.el7.x86_64

二、编译安装mysql

#安装依赖包

yum install libaio-devel ncurses-devel cmake gcc gcc-c++ bison -y 

#文件目录创建

mkdir -p /home/nulige/mysql/3306/data
mkdir -p /home/nulige/mysql/3306/tmp
mkdir -p /home/nulige/mysql/3306/log

#创建用户组和mysql用户

groupadd mysql
useradd -s /sbin/nologin -g mysql -M mysql
id mysql

#创建软件目录

mkdir -p /home/nulige/mysql
cd /home/nulige/mysql 

#下载软件

wget http://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
wget https://osdn.net/frs/g_redir.php?m=netix&f=%2Flonenmp%2Flnmpfiles%2Fmysql%2Fmysql-5.7.11.tar.gz

# utf8mb4格式解释

   MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。好在utf8mb4是utf8的超集,
除了将编码改为utf8mb4外不需要做其他转换。当然,为了节省空间,一般情况下使用utf8也就够了。

  至于什么时候用,看你的做什么项目了。

在做移动应用时,会遇到ios用户会在文本的区域输入emoji表情,如果不做一定处理,就会导致插入数据库异常。

#解压安装 

tar xzf boost_1_59_0.tar.gz
tar xzf mysql-5.7.11.tar.gz

cd mysql-5.7.11
cmake -DCMAKE_INSTALL_PREFIX=/home/nulige/mysql/3306 -DMYSQL_DATADIR=/home/nulige/mysql/3306/data -DWITH_BOOST=/home/nulige/mysql/boost_1_59_0 -DSYSCONFDIR=/home/nulige/mysql -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 -DENABLE_DTRACE=0 -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DWITH_EMBEDDED_SERVER=1
#编译安装
make && make install

#配置启动服务
/bin/cp /home/nulige/mysql/3306/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on

#/etc/my.cnf,仅供参考(用于生产还需要调优)
[mysqld]
basedir = /home/nulige/mysql/3306
datadir = /home/nulige/mysql/3306/data
tmpdir = /home/nulige/mysql/3306/tmp
pid-file = /home/nulige/mysql/3306/data/my.pid
port = 3306

default_storage_engine = InnoDB
innodb_autoinc_lock_mode = 2

explicit_defaults_for_timestamp = true
character-set-client-handshake = FALSE
character_set_server = utf8
skip-name-resolve
max_connect_errors = 1000000
max_allowed_packet = 1G

connect_timeout = 3600
wait_timeout = 3600
interactive_timeout = 3600
innodb_lock_wait_timeout = 10
slave-skip-errors  = 1032,1062
log-error = /home/nulige/mysql/3306/log/error.log

slow_query_log = on
slow_query_log_file = /home/nulige/mysql/3306/log/slow-query-log.log
long_query_time = 1
log-queries-not-using-indexes
log-slow-admin-statements
log-slow-slave-statements

server-id = 100
log-bin = log-bin
binlog-format = ROW

#初始化数据库

chown -R mysql:mysql /home/nulige/mysql/3306/
cd /home/nulige/mysql/3306/bin
./mysql_install_db --user=mysql --basedir=/home/nulige/mysql/3306 --datadir=/home/nulige/mysql/3306/data

备注:这里会报一个警告,直接忽略
2017-05-19 16:33:16 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize

意思:
之前版本mysql_install_db是在mysql_basedir/script下,5.7放在了mysql_install_db/bin目录下,且已被废弃
"--initialize"会生成一个随机密码(~/.mysql_secret),而"--initialize-insecure"不会生成密码,--datadir目标目录下不能有数据文件。

#启动 数据库

service mysqld start

#设置开机自启动

[[email protected] ~]# systemctl enable mysqld.service
mysqld.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig mysqld on

#查看端口

[[email protected] bin]# ss -lntup|grep 3306
tcp    LISTEN     0      80       :::3306     :::*     users:(("mysqld",pid=25042,fd=23))

#配置环境变量

echo ‘PATH=/home/nulige/mysql/3306/bin/:$PATH‘ >>/etc/profile
source /etc/profile
echo $PATH

#查看mysql默认密码

[[email protected] bin]# cat /root/.mysql_secret
# Password set for user ‘[email protected]‘ at 2017-05-19 16:33:16
:AyjdUl!3-;*

#用默认密码,登录数据库

mysql -uroot -p‘:AyjdUl!3-;*‘   #这边密码要加引号,要么然的话存在转义问题

#修改密码(这个密码一定要足够复杂,不然会不让你改,提示密码不合法)

mysql> SET PASSWORD FOR ‘root‘@‘localhost‘ = PASSWORD(‘[email protected]‘);
mysql> flush privileges;
mysql> exit
Bye

#登录数据库

[[email protected] bin]# mysql -uroot -p‘[email protected]‘

8、查看mysql版本

[[email protected] bin]# mysql -V
mysql  Ver 14.14 Distrib 5.7.11, for Linux (x86_64) using  EditLine wrapper

9、查看数据库用户表

mysql> select host,user from mysql.user;
+-----------+-----------+
| host      | user      |
+-----------+-----------+
| localhost | mysql.sys |
| localhost | root      |
+-----------+-----------+
2 rows in set (0.00 sec)
时间: 2024-11-03 03:42:51

mysql5.7.x 编译安装的相关文章

mysql5.6.35编译安装

安装前,先确保本地的mysql已经被卸载: rpm -e mysql   //普通删除模式rpm -e --nodeps mysql    // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除 安装mysql: 安装编译代码需要的包: yum -y install make gcc-c++ cmake bison-devel  ncurses-devel 下载解压mysql: tar xvf mysql-5.6.35.tar.gzcd mysql-5.

mysql-5.6.17编译安装和常见问题

mysql-5.6.17编译安装和常见问题 以前用的是MySQL的5.1版本,且使用的是免编译的包,安装简单.最近换了5.6版本的MySQL,安装过程出现了不少问题. 1. 卸载原来版本的MySQL 检查已经安装的MySQL: # rpm -qa |grep mysql 检查到mysql以后卸载: # rpm -e mysql //卸载mysql,加--nodeps可以强制卸载 2. 下载MySQL # cd /usr/local/mysql # wget http://dev.mysql.co

mysql5.7.11编译安装以及修改root密码小结

系统是cenos6.7 64位的,默认mysql5.7.11下载到/usr/local/src,安装目录在/app/local/mysql目录下,mysql数据放置目录/app/local/data.mysql从5.1后采用cmake方式编译安装,所以要先编译安装cmake工具,也可以采用yum方式安装cmake.从mysql5.7开始编译安装需要boost库的支持,所以也要下载boost库 #wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-

mysql5.5.22编译安装

mysql5.5.22编译安装 一.准备工作 (1)干净的centos6.7系统(这个是本人的测试环境) (2)准备两个包:cmake-2.5.6.tar.gz和mysql5.5.22.tar.gz (3)把需要的包都放到/usr/local/src目录,如果不想用winscp把包放到Linux系统,可以在Linux上安装rz.方法如下: 查看rz包是哪个: yum provides "*/bin/rz" 安装rz包,可以用tab补全命令 yum -y install lrzsz.x8

Cent OS 6.5 Mysql-5.6.19 编译安装

今天来写写MySQL 5.6.19的编译安装,现在5.6版本的安装比较发杂一点了,不扯了开始吧! 安装环境 OS:Cent OS 6.5 软件:Mysql 5.6.19 下载软件 http://mirrors.sohu.com/mysql/MySQL-5.6/Mysql-5.6.19.tar.gz 安装前环境配置    #yum install -y lrzsz (这个软件可以上传文件)    #rz                  (找到你刚才下载的mysql)    #yum groupi

mysql5.6.25编译安装步骤(这是我复制别人的,方便查看)

原文地址:https://www.cnblogs.com/netsa/p/7088494.html 简略步骤: mysql5.6.25编译安装步骤: 下载mysql准备用户和组yum安装依赖解压mysqlcmake编译mysqlmake && make install ----时间约10分钟mysql安装目录权限设置数据库初始化拷贝配置文件root密码重置,原来是没密码的远程账户授权设置服务启动和开机启动  ======实战==============================#安装

MySQL5.5.52编译安装

一.MySQL介绍MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司.MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一.MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性.MySQL所使用的 SQL 语言

MySQL5.7 的编译安装

转: https://www.insp.top/article/make-install-mysql-5-7 直接开始吧. 一切从必要依赖开始. yum install -y gcc gcc-c++ ncurses-devel perl 本文中系统为 CentOS 7,不同系统的软件包管理器可能用法不同,但需求类似,请准备好 gcc gcc++ ncurses 及 perl 相关编译器或依赖库即可. 必要的文件准备: mysql 5.7.10 (include boost headers)htt

mysql5.6.16编译安装

安装依赖包 yum -y install make gcc-c++ cmake bison-devel  ncurses-devel perl* 从本地上传Mysql压缩包 put mysql-5.6.16.tar.gz tar xf mysql-5.6.16.tar.gz cd mysql-5.6.16 cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DSYSC