5.6/5.7 源码安装

====5.6 安装方式=======

mysql源码安装与使用

注:该安装过程是标准的,正确的!


MySQL自5.5版本以后,就开始使用CMake编译工具了  下载地址:https://cmake.org/download/ 

1. 源码安装原因

由于一些Linux操作系统并不自带MySQL数据库,或者有些电脑(如国产龙芯,基于MIPS指令系统)并不支持MySQL官方提供的RPM包的安装,因此需要使用源码进行重编译,然后安装使用

2. mysql 5.5.17 源码下载

1、下载地址:http://www.mysql.com/downloads/mysql/ 进入MySQL Community Server下载页面,在Select Platform选项中选择Source Code

2、 选择最后一项.tar.gz的文件,如下图

3、点击Download进入镜像链接页面,随便选择一个镜像进行下载到本地磁盘

3. mysql 5.5.17 源码安装

1、 创建mysql安装目录

此处的安装目录可以任选,如果是默认安装则在/usr/local/mysql下

# mkdir -p /usr/local/mysql/   

2、 创建数据存放目录

# mkdir -p /service/mysql/

3、创建用户和用户组与赋予数据存放目录权限

# groupadd mysql

# useradd -g mysql mysql

# chown mysql.mysql -R /service/mysql/


3.1 安装依赖包: yum install gcc*  make* 

3.2  设置操作系统资源的限制:

     vi  /etc/security/limits.conf

     mysql     soft      nproc    2047

     mysql     hard    nproc    16384

     mysql     soft      nofile    1024

     mysql     hard     nofile    65536


4、安装cmake

mysql5.5以后是通过cmake工具来编译的, CMake 是个跨平台的自动化建构系统,它用组态档(生成Makefile文件的特殊脚本)控制建构过程,对mysql的源码进行build Process(构建),然后生成Makefile文件.

Cmake下载地址: http://www.cmake.org/cmake/resources/software.html

  选择Unix/Linux Source中.tar.gz文件进行下载最新版本,然后将其解压缩到本地,并配置、安装,以下是相关命令

  # tar zxvf cmake-2.8.6.tar.gz

  # cd cmake-2.8.6

  #./configure --prefix=/usr/local/cmake       => 需要yum install gcc* 

  # gmake && make install

5、编辑mysql

进入MySQL解压目录下,使用cmake来对mysql的安装目录、数据存放、配置文件、系统语言等相关信息进行编辑,以下是相关指令:

以下是编辑命令的集合,可以直接拷贝、粘贴并执行,注意的是安装目录与数据目录的位置

#cd /usr/src/mysql.5.6.31

#cmake  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql

                -DDEFAULT_CHARSET=utf8  

                -DDEFAULT_COLLATION=utf8_unicode_ci

                -DENABLED_LOCAL_INFILE=1

                -DWITH_INNOBASE_STORAGE_ENGINE=1

                -DWITH_FEDERATED_STORAGE_ENGINE=1

                -DWITH_BLACKHOLE_STORAGE_ENGINE=1

                -DWITH_PARTITION_STORAGE_ENGINE=1

                -DWITH_PERFSCHEMA_STORAGE_ENGINE=1

                -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1

                -DCOMPILATION_COMMENT='JSS for mysqltest'    --编译环境的描述性注释

                -DWITH_READLINE=ON

                 -DSYSCONFDIR=/etc 

                -DMYSQL_DATADIR=/service/data/ 

                -DMYSQL_UNIX_ADDR=/service/data/mysqld.sock    --指定socket文档存放路径,默认为/tmp/mysq.sock

                -DMYSQL_TCP_PORT=3308

                -DWITH_DEBUG=0

注: mysql源码编译时支持的参数,执行cmake命令时,可以指定很多参数,如果想查看所有支持的参数,可执行cmake .-LAH 。


  --在mysql soft 目录下执行。--跟据报错来 编译需要的参数

执行以上命令,将构建MySQL源码中的Makefile文件。

选项说明:

常使用的参数:

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql

mysql安装的主目录,5.5.17版本默认为/usr/local/mysql,(可省略),编辑安装之后感觉路径不合适,只要mysql进程没有启动,随时可以修改。

-DDEFAULT_CHARSET

  制定mysql服务默认字符集,默认参数值为latin1,详细可以参考mysql源码目录下,cmake/character_sets.cmake 文件中set(CHARSETS_AVAILABLE)变量值. 这一选项,也可以在mysql服务启动时,通过参数 character_set_server 进行设置

-DEXTRA_CHARSETS=all 

-DDEFAULT_CHARSET=utf8 

-DDEFAULT_COLLATION=utf8-general_ci


 数据库编码设置

-DDEFAULT_COLLATION

制定mysql 服务的默认校对规则,默认为:latin1_swedish_ci,
此选项也可在mysql服务启动时通过collation_server参数修改

-DMYSQL_TCP_PORT=3306

数据库服务器TCP/IP连接的监听端口,默认为3306(可省略)

-DENABLED_LOCAL_INFILE=1

是否允许从客户端本地加载数据到mysql服务端,专用于LOAD DATA INFILE语句,默认是关闭的。这里开启

-DENABLED_PROFILING

是否启动 query profiling ,专用于show profile 和show profiles语句,默认是启用。

-DMYSQL_DATADIR

指定 mysql 数据库数据文件的存储路径,这一选项在mysql 服务启动时,通过datadir参数可以设置。

-DSYSCONFDIR=/etc

指定mysql参数配置文件 my.cnf 默认路径,这一选项可以在mysql服务启动时 通过defaults-file 参数设置。,默认/etc下(可省略)

-DWITH_xxx_STORAGE_ENGINE

静态编译某存储引擎,可选择的存储引擎关键字有:archive, blackhole,example,federated,innobase,partition,perfschema, 其实mysql 支持存储引擎不止这些,eg: MyISAM,MERGE,MEMORY及CSV 四种存储引擎默认会编译在服务端的。partition ->表示是否支付分区,perfschema 则是performance_schema 等.

-DWITHOUT_xxx_STORAGE_ENGINE

与前面参数的功能正好相反,本参数是指定不编译的存储引擎。eg: 当不需要编译example引擎时,即可制定:-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1

-DWITH_EXTRA_CHARSETS

指定附加支持字符集,默认为all。

-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock

系统Socket文件(.sock)设置,基于该文件路径进行Socket连接,必要为绝对路径,默认为/tmp/mysql.sock 目录下,这一服务可以在mysql启动时指定

TCP_PORT=3306

数据库服务器TCP/IP连接的监听端口,默认为3306(可省略)


可能使用到的参数:

8、安装MySQL

#make && make install

    --make是用来编译的,它从makefile 中读取指令,然后编译。

    --make install 是用来安装的,他也是从make中读取指令,将软件安装到指定的位置。

     --这将是一个比较漫长的过程。。。。。

9、配置MySQL的启动项

#cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf //更改配置文件位置   --(可以不需要)  --这就类似是自己定义的my.cnf文件

#cp support-files/mysql.server /etc/init.d/mysqld //设置mysql服务器操作路径

#chmod 755 /etc/init.d/mysqld//更改权限

#bash scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/service/data///安装数据库,并设置用户名和数据存放位置

--------------

 mysql 推荐启动方式:$ cd /usr/local/mysql/bin  
                                     mysqld_safe  --defaults-file=/etc/my.cnf  &

--------------

--这里,如果自己 新定义了my.cnf  文件新路径,在 启动MYSQL服务是,需要删除 mysql 安装目录下(basedir) 的原my.cnf 文件。

4. MySQL启动与使用

1、在命令行中输入:

#/etc/init.d/mysqld start

启动Mysql服务

2、登录MySQL

命令行:/usr/local/mysql/bin/mysql -u root -p

使用mySQL数据库的root用户登录,默认无密码(此root与linux的root不是一回事)

可以使用硬连接(ln /usr/local/mysql/bin/  /usr/bin)将其指定到/usr/bin下,以后直接输入mysql即可以启动登录

如果出现:Invalid cross-device link错误是跨分区错误;记得排错!

例1:给root加个密码123456。 
   键入以下命令 : 
   [root@test1 local]# /usr/local/mysql/bin/mysqladmin -u root password q3,gh.

3、 简单操作

mysql>use mysql ;//使用mysql数据库

//更改root用户的登录密码

mysql>update user set password=PASSWORD("bjsyx825") where user='root';

授权

mysql> grant all privileges on *.* to root@'%' identified by 'q3,gh.'; 

 //刷新更新

mysql>FLUSH PRIVILEGES;

5. 总结

最好将上面的安装指令等写成一个Shell脚本,以避免错误,并使安装更简单。。完毕!



-- 之后,/etc/my.cnf  下 可以自定义 



=====5.7 安装方式====


相应的源码包下载方式:

 
wget http://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
wget http://cdn.mysql.com/Downloads/MySQL-5.7/mysql-5.7.9.tar.gz

-----在redhat 6.4  安装CMake----

步骤一、安装gcc等必备程序包(已安装则略过此步)

yuminstall -y gcc gcc-c++ make automake 

步骤二、安装wget (已安装则略过此步)

yuminstall -y wget

步骤三、获取CMake源码包

wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz

步骤四、解压CMake源码包

  
  
tar -xvf cmake-3.4.1.tar.gz -C /usr/local/

步骤五、进入目录

  
  
#cd /usr/local/cmake-3.4.1/

步骤六

#./bootstrap --prefix=/usr/local/cmake-3.4.1/
# gmake 
#gmake install
/* 如果步骤六报错,可能原因是关联的程序包未安装。解决方法:安装所需的程序包后,将cmake-3.4.1/目录下的CMakeCache.txt删掉,再从步骤六开始*/ 

---or---

cd /usr/local/cmake

./configure --prefix=/usr/local/cmak

make &&make install

-----------------------

添加mysql用户
useradd -M -s /sbin/nologin mysql


[root@sfpay mysql-5.7.10] cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.7.10/ 
                 -DDEFAULT_CHARSET=utf8  
                 -DDEFAULT_COLLATION=utf8_unicode_ci 
                 -DENABLED_LOCAL_INFILE=1 
                 -DWITH_INNOBASE_STORAGE_ENGINE=1 
                 -DWITH_FEDERATED_STORAGE_ENGINE=1 
                 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 
                 -DWITH_PARTITION_STORAGE_ENGINE=1  
                 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1  
                 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 
                 -DWITH_MYISAM_STORAGE_ENGINE=1 
                 -DWITH_ARCHIVE_STORAGE_ENGINE=1 
                 -DMYSQL_USER=mysql 
                 -DMYSQL_DATADIR=/data/mysql/ 
                 -DENABLE_DOWNLOADS=1 
                 -DMYSQL_USER=mysql 
                 -DWITH_READLINE=ON 
                 -DSYSCONFDIR=/etc 
                 -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock 
                 -DWITH_DEBUG=0 
                 -DDOWNLOAD_BOOST=1 
、             -DWITH_BOOST=/usr/local/boost_1_59_0/   --这里是对应的 boost_1_59_0.tar.gz 解压路径

[root@sfpay mysql-5.7.10]#  make && make insall 
 
--------安装授权
[root@sfpay mysql]# chown -R mysql:mysql /usr/local/mysql-5.7.10/
[root@sfpay mysql]# chmod -R 775 /usr/local/mysql-5.7.10/
[root@sfpay mysql]# chown -R mysql:mysql /data/mysql/
[root@sfpay mysql]# chmod -R 775 /data/mysql/
[root@sfpay mysql]# cd /usr/local/mysql-5.7.10/
[root@sfpay mysql-5.7.10]# cd support-files/
[root@sfpay support-files]# cp my-default.cnf /etc/my.cnf
[root@sfpay support-files]# cp mysql.server /etc/init.d/mysqld
[root@sfpay support-files]# chown -R mysql:mysql /etc/my.cnf 
[root@sfpay support-files]# chmod -R 775 /etc/init.d/mysqld 
[root@sfpay support-files]# chmod -R 775 /etc/my.cnf 

-------初始化数据库
[mysql@sfpay bin]$ ./mysql_install_db --user=mysql --basedir=/usr/local/mysql-5.7.10/ --datadir=/data/mysql/
2015-12-28 15:47:35 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize
2015-12-28 15:47:39 [WARNING] The bootstrap log isn't empty:
2015-12-28 15:47:39 [WARNING] 2015-12-28T07:47:35.846807Z 0 [Warning] --bootstrap is deprecated. Please consider using --initialize instead


[mysql@sfpay mysql]$ cat /home/mysql/.mysql_secret 
# Password set for user 'root@localhost' at 2015-12-28 15:47:35 
RJXemAgKSla?

-------登录设置密码
[mysql@sfpay bin]$ /usr/local/mysql-5.7.10/bin/mysql -uroot -pRJXemAgKSla?
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.10

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
ERROR 1820 (HY000):  You must reset your password  using ALTER USER statement before executing this statement.
mysql> set password=password('mysql123');
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

----环境变量设置
[ mysql@sfpay ~]$ cat .bash_profile 
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH
export DATADIR=/data/mysql/
export BASEDIR=/usr/local/mysql-5.7.10/
export PATH=$DATADIR/bin:$PATH:$BASEDIR/bin:$PATH:$HOME/bin
export LD_LIBRARY_PATH=$DATADIR/lib:$LD_LIBRARY_PATH:$BASEDIR/lib


------编辑参数  my.cnf :

初始化数据库 
   shell > /usr/local/mysql-5.7.10/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql-5.7.10/ --datadir=/data/mysql/


注:
 
之前版本mysql_install_db是在mysql_basedir/script下,5.7放在了mysql_install_db/bin目录下,且已被废弃
“–initialize”会生成一个随机密码(~/.mysql_secret),而”–initialize-insecure”不会生成密码
–datadir目标目录下不能有数据文件
 
启动数据库 
service mysqld start

设置数据库密码
 
 
dbrootpwd=oneinstack  #数据库root密码
/usr/local/mysql/bin/mysql -e "grant all privileges on *.* to root@'127.0.0.1' identified by \"$dbrootpwd\" with grant option;"
/usr/local/mysql/bin/mysql -e "grant all privileges on *.* to root@'localhost' identified by \"$dbrootpwd\" with grant option;"
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值