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

本文档详细介绍了在CentOS 6.5操作系统上手动编译安装MySQL 5.6的全过程,包括关闭防火墙、修改配置文件、卸载旧版MySQL、下载安装包、配置环境变量、创建数据目录、编译安装、初始化数据库、启动MySQL服务以及安装后的优化等步骤,确保MySQL稳定运行。
摘要由CSDN通过智能技术生成

一、大致操作步骤

环境介绍:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值