CentOS6.9编译安装MySQL5.7.16

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

CentOS6.9编译安装MySQL5.7.16

部署环境:

系统CentOS6.9,mysql5.7.16,boost库

系统为2G内存

1、安装依赖包,使用yum安装cmake,6.9默认yum源自带

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

2、创建mysql的用户:

    useradd  -U -s /sbin/nologin mysql

3、创建必要的文件夹,并修改其目录用户所有者:

    mkdir -pv /usr/local/mysql/etc

    mkdir -pv /data/{boost/boost_1_59_0,mysql/{data,log}}

    chown -R mysql:mysql /usr/local/mysql/

    chown -R mysql:mysql /data/mysql/

4、将boots库拷贝到boost目录下

    cp /tmp/boost/boost_1_59_0/* /data/boost/boost_1_59_0

    chown -R mysql:mysql /data/boost/

5、编译安装mysql5.7

    cd /tmp

    tar xf mysql-5.7.16.tar.gz

    cd mysql-5.7.16

    cmake \

    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

    -DMYSQL_DATADIR=/data/mysql/data \

    -DSYSCONFDIR=/usr/local/mysql/etc \

    -DWITH_MYISAM_STORAGE_ENGINE=1 \

    -DWITH_INNOBASE_STORAGE_ENGINE=1 \

    -DWITH_MEMORY_STORAGE_ENGINE=1 \

    -DWITH_READLINE=1 \

    -DMYSQL_UNIX_ADDR=/data/mysql/log/mysql.sock \

    -DMYSQL_TCP_PORT=3306 \

    -DENABLED_LOCAL_INFILE=1 \

    -DWITH_PARTITION_STORAGE_ENGINE=1 \

    -DEXTRA_CHARSETS=all \

    -DDEFAULT_CHARSET=utf8 \

    -DDEFAULT_COLLATION=utf8_general_ci \

    -DWITH_BOOST=/data/boost/boost_1_59_0


    make && make install

    时间比较长

    chown -R mysql:mysql /usr/local/mysql

6、配置文件my.cnf

    [client]

    port    = 3306

    socket  = /data/mysql/log/mysql.sock


    [mysql]

    default-character-set = utf8


    [mysqld]

    # file

    datadir =/data/mysql/data

    basedir = /usr/local/mysql

    pid-file =/data/mysql/log/mysqld.pid

    log_error = /data/mysql/log/mysql.err

    port = 3306

    socket=/data/mysql/mysql.sock

    user=mysql

    character_set_server = utf8

    character_set_server = utf8

    slow_query_log = 1

    slow_query_log_file = /data/mysql/log/slowq.log

    long_query_time = 1

    log-bin=/data/mysql/log/mysql-bin.log

    # temp

    max_tmp_tables = 64

    tmp_table_size = 512M

    slave_load_tmpdir = /data/mysql/log

    tmpdir = /data/mysql/log


    # session

    back_log = 512

    skip-name-resolve

    max_allowed_packet = 32M

    max_connections = 16000

    max_connect_errors = 10000

    wait_timeout = 28800


    table_open_cache = 216

    thread_cache_size = 128



    query_cache_type = 0

    query_cache_size = 0

    key_buffer_size = 128M

    myisam_sort_buffer_size = 16M

    read_buffer_size = 16M

    read_rnd_buffer_size = 16M

    sort_buffer_size = 16M

    join_buffer_size = 16M


    # innodb

    default_storage_engine = InnoDB

    innodb_data_home_dir = /data/mysql/data

    innodb_data_file_path = ibdata1:256M:autoextend

    innodb_log_group_home_dir = /data/mysql/log

    innodb_log_files_in_group = 4

    innodb_log_file_size = 256M

    innodb_log_buffer_size = 8M

    innodb_flush_log_at_trx_commit = 2

    innodb_flush_method = O_DIRECT

    innodb_lock_wait_timeout = 50

    #innodb_thread_concurrency = 24 16

    innodb_buffer_pool_size = 1G

    innodb_io_capacity = 1500

    innodb_use_native_aio = 1

    innodb_file_per_table = 1

    innodb_open_files = 3000


    # others

    memlock = 1

    performance_schema = 0


    # replication

    server-id = 150

    binlog_format = row

    expire_logs_days = 7

    relay_log = /data/mysql/log/relay-bin

    #replicate_ignore_db = mysql

    #slave_skip_errors = 1062

    log_slave_updates = 1

    skip-slave-start

    read_only = 0

    sync_binlog = 1


    [mysqldump]

    default-character-set = utf8


    [mysqld-5.7]

    innodb_buffer_pool_dump_pct = 40

    innodb_undo_log_truncate = 1

    innodb_undo_tablespaces = 3

    innodb_max_undo_log_size = 1G

    innodb_purge_rseg_truncate_frequency = 128

    binlog_gtid_simple_recovery=1

    log_timestamps=system

    show_compatibility_56=on

    sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

7、初始化数据库

    版本在5.7.6前用的是mysql_install_db

    版本5.7.6之后使用的mysqld --initialize

    #####################官网标注#####################################

    shell> bin/mysql_install_db --user=mysql    # MySQL 5.7.5

    shell> bin/mysqld --initialize --user=mysql # MySQL 5.7.6 and up

    shell> bin/mysql_ssl_rsa_setup              # MySQL 5.7.6 and up

    #####################官网标注#####################################

    /usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/data/mysql/data --basedir=/usr/local/mysql

    可能会出现内存不够的报错,自己优化下调节一下buffer大小就行了

    /usr/local/mysql/bin/mysql_ssl_rsa_setup


    没有打印日志,临时密码不能用,只好破解了,后面有方法。

8、启动数据库

    vim /usr/local/mysql/support-files/mysql.server

    加上绝对路径

    basedir=/usr/local/mysql

    datadir=/data/mysql/data

    cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

    service mysqld start

9、配置环境变量

    vim /etc/profile

    export PATH=/usr/local/mysql/bin:$PATH

    source /etc/profile

10、查看mysql临时密码,这项我这不用了,不好使,直接破解了。

    cat /root/.mysql_secret

    mysql -uroot -p`cat /root/.mysql_secret`

    如果能进去,基本上到这就截止了,可以正常使用了。

    

**不能正常登录,使用临时密码无法登进去**

11、破解密码

    mysqld_safe --defaults-file=/usr/local/mysql/etc/my.cnf --skip-grant-tables --skip-networking&

    update mysql.user set authentication_string=password('123456') where user='root';

    11.1、查找进程号,杀掉mysql进程

        ps aux | grep mysql 

        kill -9 pid

        service mysqld start

    11.2、登录mysql

        mysql -u root -p 'password'

        提示修改密码:

        mysql> alter user root@localhost identified by '123456';

ok了










本文转自 wangpengtai  51CTO博客,原文链接:http://blog.51cto.com/wangpengtai/1919995,如需转载请自行联系原作者
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
235
分享
相关文章
源码编译安装LAMP(HTTP服务,MYSQL ,PHP,以及bbs论坛)
通过以上步骤,你可以成功地在一台Linux服务器上从源码编译并安装LAMP环境,并配置一个BBS论坛(Discuz!)。这些步骤涵盖了从安装依赖、下载源代码、配置编译到安装完成的所有细节。每个命令的解释确保了过程的透明度,使即使是非专业人士也能够理解整个流程。
44 18
|
10天前
|
centos 编译安装 python 和 openssl
centos 编译安装 python 和 openssl
30 2
CentOS7仅安装部署MySQL80客户端
通过上述步骤,你可以在CentOS 7上成功安装并配置MySQL 8.0客户端。这个过程确保你能够使用MySQL客户端工具连接和管理远程的MySQL数据库,而不需要在本地安装MySQL服务器。定期更新MySQL客户端可以确保你使用的是最新的功能和安全修复。
344 16
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。通过具体案例,读者可以了解如何准备环境、下载源码、编译安装、配置服务及登录 MySQL。编译源码安装虽然复杂,但提供了更高的定制性和灵活性,适用于需要高度定制的场景。
278 3
在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。
本文介绍了在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。内容涵盖准备工作、下载源码、编译安装、配置服务、登录设置及实践心得,帮助读者根据需求选择最适合的安装方法。
311 2
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
450 2
VMware隐藏黑科技!CentOS安装这个神器效率翻倍 文件互传竟比U盘还快?
### 安装VMtools的作用及步骤 安装VMtools可以实现Windows与CentOS之间的字符串和命令粘贴、文件夹共享等操作。在CentOS中,通过VMware菜单栏选择“VMware Tools”,将下载的压缩包拷贝到`/opt`目录并解压。接着进入终端,使用`./vmware-install.pl`命令完成安装。安装后重启系统,即可实现Windows与CentOS之间的字符和文件共享。具体步骤包括解压文件、启动命令行终端、安装VMtools以及配置文件共享。
75 16
VMware隐藏黑科技!CentOS安装这个神器效率翻倍 文件互传竟比U盘还快?
|
27天前
|
零基础保姆级教程!手把手教你免费玩转Linux CentOS安装+学习环境搭建(附避坑指南)
本文详细介绍了在VMware虚拟机中安装CentOS 6.8的全过程。首先,需确保已安装VMware并开启V-CPU虚拟化功能,可通过BIOS设置或使用LeoMoon CPU-V工具检测。接着,下载CentOS镜像文件,并在VMware中新建虚拟机,配置CPU、内存、硬盘等参数。最后,加载ISO镜像启动虚拟机,按照提示完成CentOS的安装,包括语言、键盘、存储方式、地区、密码设置及硬盘分区等步骤。安装完成后,以root用户登录即可进入系统桌面,开始学习Linux命令和操作。
108 12
零基础保姆级教程!手把手教你免费玩转Linux CentOS安装+学习环境搭建(附避坑指南)
如何从CentOS7升级到8?CentOS8最新安装教程
从CentOS 7升级到8只需三步:清理系统、更换软件包及存储库、安装新内核与发布版本。首先确保系统最新并清理冗余包,接着替换基础系统包为CentOS 8版本,最后通过DNF工具完成内核更新与系统同步。整个过程需在终端执行,建议升级前备份VPS快照以防数据丢失。此方法可避免重装系统导致的数据清除问题,实现平滑升级。
51 6
Linux中yum、rpm、apt-get、wget的区别,yum、rpm、apt-get常用命令,CentOS、Ubuntu中安装wget
通过本文,我们详细了解了 `yum`、`rpm`、`apt-get`和 `wget`的区别、常用命令以及在CentOS和Ubuntu中安装 `wget`的方法。`yum`和 `apt-get`是高层次的包管理器,分别用于RPM系和Debian系发行版,能够自动解决依赖问题;而 `rpm`是低层次的包管理工具,适合处理单个包;`wget`则是一个功能强大的下载工具,适用于各种下载任务。在实际使用中,根据系统类型和任务需求选择合适的工具,可以大大提高工作效率和系统管理的便利性。
183 25

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等