热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

mysql编译安装配置环境变量_(0)linux下的Mysql安装与基本使用(编译安装)

一、大致操作步骤环境介绍:OS:centerOS6.5mysql:5.6版本1.关闭防火墙查看防火墙状态:serviceip

一、大致操作步骤

环境介绍:

OS:center OS6.5

mysql:5.6版本

012b35d542282b78f81c92904ced80f9.png

1.关闭防火墙

查看防火墙状态:service iptables status

7b48981f038e363cc845c2bb39171857.png

这样就意味着没有关闭。

运行以下命令关闭防火墙  service iptables stop,然后再次查看防火墙状态

311b7937c7d01c781e17c3dafc6ce4a9.png

89216fd62d98658001fb1a5a705c3680.png

运行这条命令,可以彻底关闭:chkconfig iptables off

运行:vi /etc/selinux/config

35dc7ecdc44fc6e02754d0c26eb911c4.png

这个改成disabled

2.修改配置文件

more /etc/sysctl.conf

3.检查是否安装了mysql

rpm -qa |grep mysql

c954303a364b8664ea6d901c347130a9.png

已经装了,那卸载装5.6吧,发现报错,说是有依赖,不能直接删

15ddcbd8a7cf26e5a0ff6b9884094a0d.png

那么我们用:yum remove mysql*

4.下载mysql包

4.1 下载

进入www.mysql.com,然后选择download

c814f2594d91606fc756b38c27dcc8ef.png

然后找到社区版

7190fca99c4a5d7ded9d6ae86c7c38e9.png

然后我们找到社区版的服务

410801e455920002c2d9854216f031c9.png

然后找到我们要找的版本

7bec0aadc89b84ff674b547e2b3c73d0.png

选择源码编译和常用Linux操作系统

1b4785574064b44de1b49cecbfffb537.png

4.2 上传并且安装

【1】在虚拟机中挂载光驱,设置光驱就不细说了,看图

7c4f9b136f0969fc38584a875e043fdc.png

【2】挂载

mount /dev/cdrom /mnt

#把光盘挂载到  /mnt目录下

【3】复制到本地

mkdir -p /redhat/mnt

cp -r/mnt /redhat/mnt

【4】配置yun源

cd /etc/yum.repos.d/

ll

f8533ec40c34f8670cc9b16e421c8b32.png

#新建一个文件

vim base.repo

a81d366d249cf4aa3ef968145e451788.png

#安装好rz,选择mysql文件即上传到当前目录去了。

yum install -y lrzsz

rz

b8e48ae06a657066685fc854b03261eb.png

5.添加用户和组

groupadd mysql    # (useradd:http://man.linuxde.net/useradd)

useradd -d /home/mysql -g mysql -m mysql    #建立好之后可以用id mysql查看

su - mysql       #切换到mysql用户

6.配置环境变量

vim  ~/.bash_profile       #配置mysql环境变量

66c379b415b6e1c510d0889f661db7ac.png

#我准备把mysql放在这个目录下面

7.创建目录及授权

#然后构建mysql数据目录

mkdir -p /u01/my3306/data

mkdir -p /u01/my3306/log/iblog

mkdir -p /u01/my3306/log/binlog

mkdir -p /u01/my3306/run

mkdir -p /u01/my3306/tmp

#用户授权/目录授权

chown -R mysql:mysql /u01/my3306/

chmod -R 755 /u01/my3306/

8.压缩mysql5.6

tar -xzvf mysql-5.6.41.tar.gz

e57835d3dbce5a2354426ce843c2319c.png

9.配yum源,安装cmake

#这里我们的4.2步骤已经配置yum源

yum install -y cmake gcc gcc-c++ ncurse-devel bison zlib libxml openssl

#解析:(1)gcc gcc-c++:编译用 (2)ncurse-devel:用于终端操作开发包 (3)bison:mysql的语法解析 (4)zlib :用zlib进行压缩 (5)libxml :以xml方式输出支持 (6)openssl:安全套接字通信

10.编译并安装

(1)进入mysql解压后的目录(因为 cmake目录在这里)

(2)编译

rm CMakeCache.txt    #先把源码目录中清理一下这个文件

然后在执行如下命令:

cmake \

-DCMAKE_INSTALL_PREFIX=/u01/my3306 \

-DMYSQL_UNIX_ADDR=/u01/my3306/run/mysql.sock \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_ARCHIVE_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITH_MEMORY_STORAGE_ENGINE=1 \

-DWITH_READLINE=1 \

-DENABLED_LOCAL_INFILE=1 \

-DMYSQL_DATADIR=/u01/my3306/data\

-DMYSQL_USER=mysql \

-DMYSQL_TCP_PORT=3306

--参数释义(深入请参考:http://blog.51cto.com/laowafang/1294964)

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \         (反斜杠意思是换行,指定安装目录)

-DMYSQL_DATADIR=/data/mydata \                   (指定数据存储目录)

-DSYSCONFDIR=/etc \                              (配置文件目录)

-DWITH_INNOBASE_STORAGE_ENGINE=1 \       (指定编译存储引擎)

-DWITH_ARCHIVE_STORAGE_ENGINE=1 \        (指定编译存储引擎)

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \      (指定编译存储引擎)

-DWITH_READLINE=1 \         (指定编译库)

-DWITH_SSL=system \        (指定编译库)

-DWITH_ZLIB=system \        (指定编译库)

-DWITH_LIBWRAP=0 \        (指定编译库)

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \     (指定套接字路径)

-DDEFAULT_CHARSET=utf8 \             (指定默认字符集)

-DDEFAULT_COLLATION=utf8_general_ci      (指定默认编码)

-DWITH_BOOST=/usr/local/boost       (指定boost库位置)

发现了报错,如下:

85566f348b8f475714860f16d027f62c.png

yum install ncurses-devel    #命令装一下这个包

#然后再cmake,又报错如下

CMake Error: The source directory does not appear to contain CMakeLists.txt.

意思是我没有进入mysql目录,找不到cmake文件,进入一下下面的目录

cbfcfbeffbcee41d9a9370f9c4fd9dae.png

再次cmake还是报错

230360d41303572a38d37c21a66dd56b.png

因为开始编译过,有清除缓存文件

rm CMakeCache.txt       #需要把源码目录中的CMakeCache.txt文件删除,然后再重新CMAKE

(3)make  #编译 或者3-4可以合成一句  make && make install

(4)make install

11.mysql参数配置

[mysql]

# CLIENT #

port= 3306socket= /u01/my3306/mysql.sock

default-character-set =utf8

[mysqld]

# GENERAL #

user=mysql

default_storage_engine=InnoDB

socket= /u01/my3306/mysql.sock

pid-file = /u01/my3306/mysql.pid

character-set-server =utf8

# MyISAM #

key_buffer_size=32M

myisam_recover=FORCE,BACKUP

# SAFETY #

max_allowed_packet=16M

max_connect_errors= 1000000skip_name_resolve

# DATA STORAGE #

datadir= /u01/my3306/data

# BINARY LOGGING #

log_bin= /u01/my3306/log/mysql-bin

expire_logs_days= 14sync_binlog= 1# CACHES AND LIMITS #

tmp_table_size=32M

max_heap_table_size=32M

query_cache_type= 0query_cache_size= 0max_connections= 500thread_cache_size= 50open_files_limit= 65535table_definition_cache= 1024table_open_cache= 2048# INNODB #

innodb_flush_method=O_DIRECT

innodb_log_files_in_group= 2innodb_log_file_size=256M

innodb_flush_log_at_trx_commit= 1innodb_file_per_table= 1innodb_buffer_pool_size=256M

innodb_thread_concurrency= 12#thread_handling= pool-of-threads

#auto_increment_increment= 2#auto_increment_offset= 0# LOGGING #

log_error= /u01/my3306/log/mysql-error.log

log_queries_not_using_indexes= 1slow_query_log= 1slow_query_log_file= /u01/my3306/log/mysql-slow.log

超简单版如下:

[mysqld]

# GENERAL #

port= 3306datadir= /u01/my3306/data

配置好文件,命名为my.cnf,然后rz拷贝到/u01/my3306/下

12.初始化mysql

./scripts/mysql_install_db --defaults-file=/u01/my3306/my.cnf --datadir=/u01/my3306/data/ -user=mysql

这里在my3306也就是我们的mysql目录下跑,

--defaults-file=/u01/my3306/my.cnf #默认文件引用 my3306下的my.cnf

13.启动mysql

进入/u01/my3306/bin 目录下

ll  查看,有个mysqld_safe,启用它,如果mysql进程被误删一类的,它会自动重启mysql进程,实现代码如下

./mysql_safe --defaults-file=/u01/my3306/my.cnf --user=mysql &

查看mysql进程

ps -ef |grep 3306

#效果如下

382a5f60a20d9cf9078370beee855843.png 

#看图中 进程号为3530,那么我们要查看进程中的所有线程命令如下

pstack 3530

#如下图,我这里一共28个线程

2cb37bf2b12bc09fa841a4bb5e46831c.png

14.登录mysql

source .bash_profile    #引用一下环境变量文件

(1)直接输入mysql

它可以进入,但是它用的操作系统认证

6a3bba613fa2ed2d77057d8c351c766d.png

(2)常规方式登录

mysql -h127.0.0.1 -uroot

因为初始root没有设置密码,所以这里不需要输入密码;

2c4f2b84b682d8c16658c95486e90a59.png

到此,安装过程就大功告成了!

15.安装完成后的优化(删除多余数据库与账户)

15.1、查看数据库的版本信息

15.2、删除多余的账号(除root和localhost的)

15.3、修改mysql默认的mysql管理账号

修改默认的mysql管理账号(root改为mysql,并设置新密码为redhat12345)

继续查询:

15.4、删除test数据库

为什么要删?新建MySQL数据库后,默认创建的test数据库权限比较怪异,所有可连接的用户都能够拥有权限访问该库

15.5、优化权限字典表mysql.db

如下所示:新建MySQL数据库后,默认创建的test数据库权限比较怪异,所有可连接的用户都能够拥有权限访问该库,并操作其中的对象,Host为%,User为空,说明了不受限制,所有能连接到MySQL的用户,全部拥有test及test开头的数据库的几乎所有权限。

15.6、如何优化/root/.mysql_history文件

说明:在Linux/Unix系统下,使用mysql命令行工具执行的所有操作,都会被记录到一个名为.mysql_history的文件中,该文件默认保存在当前用户的根目录下

这个设定原本是为了提升mysql命令行操作体验,在mysql中操作命令就可以上下翻动了,但某些情况下缺会造成隐患。

15.7、如何历史记录消除隐患

到此,安装完成后的基本优化已经完成

附加:基本操作

(1)查看登录所在实例下的所有数据库  show databases;

76bd95c5259b99aa79a78c1ca0d8decc.png

(2)查看所有的日志变量配置情况

show variables like '%log%';

8b675df009d017a1ffddc05db0c00ee6.png

(3)如果要在其他机器上装一样的mysql,直接拿过去用就OK了,但是server_id要改一下

c0c6e36f710021497f46cbb9070eced1.png

(4)查看当前数据库上下文

select database();

d138585f0bb0a94b0ee217f60ab8661b.png

(5)查看当前用户

select user();

c40dc415051e348ae87da171c0e84cc3.png

(6)查看当前数据库下所有表

show tables;

33b3e57202c7e98b03d0a75a2a579406.png

(7)修改mysql提示符

登录mysql时:mysql -uroot -p --prompt '\u@test2_db \r:\m:\s->'

6d0b1177ec0115ad3caa7f01dfe5ab20.png

登录mysql之后:prompt \u@test_db \r:\m:\s->

5bb37660fa7ffa91a377a6b917c30172.png

注意:它是临时生效,重新登录就没了,要永久生效需要配置在my.cnf的配置文件中的  [mysql] 模块下;

967fc6612b97c708abd4850feee7ceb3.png

5fd5195a38e8d6e7ccb2a6d44d38bfb1.png



推荐阅读
  • Ubuntu16.0464位安装armlinuxgcc交叉编译器以及samba服务器
    交叉编译器是嵌入式开发的必要工具,但是由于目前大多数人使用64位ubuntu,在照着很多教程做的时候,就会失败,失败原因是64位ubuntu需要额外安装32位的兼容包。以arm-l ... [详细]
  • 开发笔记:Linux学习笔记4CentOS7中redis3.2.9安装教程
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Linux学习笔记4-CentOS7中redis3.2.9安装教程相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Linux提权之suid篇
    Linux提权之suid篇不知攻,焉知防一个在安服路上摸索的大三生,记录平时学习笔记suid前言:1.只有可以执行的二进制程序文件才 ... [详细]
  • GPS 校验和 代码_Linux recovery 移除签名校验
    原创作者:王锐,多年Linux系统、龙芯平台移植与优化研发经验,LinuxContributor、Mozillian。背景某个设备配套的刷 ... [详细]
  • Linux是一套免费使用和***传播的类UNIX操作系统,主要用于基于Intel x86系列CPU的计算机上。Linux系统是由全世界各地的成千上万的程序员合适的方式定制自己的Li ... [详细]
  • 编译linux搭建vs2015,使用Vs2015开发linux(centos7)程序
    1.首先下载vs2015withupdate32.然后下载VisualCforLinuxDevelopment3.在centos7上yuminstallopenssh-server ... [详细]
  • Lunix历史及如何学习
    1.Lunix是什么1.1Lunix是操作系统还是应用程序Lunix是一套操作系统,它提供了一个完整的操作系统当中最底层的硬件控制与资源管理的完整架构, ... [详细]
  • 102安装Linux系统
    安装Linux系统 安装CentOS系统准备系统光盘插入CentOS7光盘,引导安装程序设置主机,将光盘作为第一-引导设备从CentOS7光盘启动主机检测安装光盘的完整性从ISO镜 ... [详细]
  • hadoop完全分布式搭建
    原文链接:hadoop完全分布式搭建主机分配以及地址要求:角色主机名IP地址Namenodemaster192.168.222.201Datanodeslave ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • centosFedoraRHEL•整改方法:•验证检查:1、查看etclogin.defs,访谈询问当前所设置的密码长度及更换周期 ... [详细]
  • 标签PostgreSQL,Linux,perf,性能诊断,stap,systemtap,strace,dtrace,dwarf,profiler,perf_events,probe ... [详细]
  • ImportError:cannotimportnameadd_newdocs如果在ipythonbook中,importnumpy时报这个错误,而spyder中却能正常使用,那么 ... [详细]
  • phpmysql一键安装包,Mysql安装包
    本文目录一览:1、哪里有PHPMySQLDatabaseApacheServer一 ... [详细]
  • linux树莓派和n1,树莓派 斐讯N1 搭建NFS
    什么是NFS?1台Linux主机的磁盘可以通过网络挂载到其他Linux主机上,实现云盘效果。NFS是一套软件和协议,同时也是一种文件系统& ... [详细]
author-avatar
U友50081205_653
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有