4、源码包安装 5.6.25install_dir:/mysql25
data_dir:/mysql25/data
socket:/mysql25/mysql.sock
port:3308config_file:/mysql25/etc/my.cnf#md5sum mysql-5.6.25.tar.gz
37664399c91021abe070faa700ecd0ed mysql-5.6.25.tar.gz
步骤:1、创建相应的数据目录
mkdir/mysql25/data -p2、解压相应的软件包到指定的临时目录里(/usr/src)#tar -xf mysql-5.6.25.tar.gz -C /usr/src/#cd /usr/src/mysql-5.6.25/
3、根据需求进行配置
参考官方文档
默认情况下载当前目录下直接可以配置
shell> cmake . -LAH 查看所有支持的配置选项
shell>cmake .
CMAKE_INSTALL_PREFIX/usr/local/mysql 安装路径
DEFAULT_CHARSET latin1 拉丁 默认字符集
DEFAULT_COLLATION latin1_swedish_ci 指定服务器默认的校对规则(排序规则)
ENABLED_LOCAL_INFILE OFF 是否开启内部加载外部文件功能 默认off 1代表开启0代表关闭
MYSQL_DATADIR 数据文件目录
SYSCONFDIR 初始化参数文件目录(主配置文件路径(默认优先去/etc目录去找))
MYSQL_TCP_PORT 服务端口号,默认3306
MYSQL_UNIX_ADDR socket文件路径,默认/tmp/mysql.sock
WITHOUT_xxx_STORAGE_ENGINE 指定不编译的存储引擎
WITH_xxx_STORAGE_ENGINE 指定静态编译到mysql的存储引擎,MyISAM,MERGE,MEMBER以及CSV四种引擎默认即被编译至服务器,不需要特别指定。
WITH_EXTRA_CHARSETS 扩展字符集
字符集与字符编码
字符是各种文字和符号的总称,包括各个国家文字、标点符号、图形符号、数字等。字符集是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同,
计算机要准确的处理各种字符集文字,需要进行字符编码,以便计算机能够识别和存储各种文字。也就是说字符编码是字符集的实现方式。
但需要注意的是:有的字符编码和字符集的名称是一致的。
常见的字符集
Unicode:也叫统一字符集,它包含了几乎世界上所有的已经发现且需要使用的字符(如中文、日文、英文、德文等)。
ASCII:早期的计算机系统只能处理英文,所以ASCII也就成为了计算机的缺省字符集,包含了英文所需要的所有字符。
GB2312:中文字符集,包含ASCII字符集。ASCII部分用单字节表示,剩余部分用双字节表示。
GBK:GB2312的扩展,但完整包含了GB2312的所有内容。
GB18030:GBK字符集的超集,常叫大汉字字符集,也叫CJK(Chinese,Japanese,Korea)字符集,包含了中、日、韩三国语言中的所有字符。
常见的字符编码:
UTF-8 UTF-16 UCS-2 UCS-4GBK/GB2312
GB18030
字符编码 每个字符字节数
ASCII1UCS-2(Unicode) 2UCS-4(Unicode) 4UTF-8(Unicode) 1 - 6UTF-16(Unicode) 2 - 4GBK/GB2312(中文) 1 - 2GB18030(CJK)1- 4
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~编写cmake脚本:
vim cmake.sh#!/bin/bash
cmake . \-DCMAKE_INSTALL_PREFIX=/mysql25 \-DENABLED_LOCAL_INFILE=1\-DMYSQL_DATADIR=/mysql25/data \-DSYSCONFDIR=/mysql25/etc \-DWITH_INNOBASE_STORAGE_ENGINE=1\-DWITH_PARTITION_STORAGE_ENGINE=1\-DMYSQL_UNIX_ADDR=/mysql25/mysql.sock \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci \-DWITH_EXTRA_CHARSETS=all \-DMYSQL_USER=mysql \-DMYSQL_TCP_PORT=3308chmod+x cmake.sh#./cmake.sh
./cmake.sh: line 2: cmake: command notfound
yum-y install cmake#./cmake.sh
--Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
CMake Error at cmake/readline.cmake:85(MESSAGE):
Curses librarynotfound. Please install appropriate package,
remove CMakeCache.txtand rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.
Call Stack (most recent call first):#yum -y install ncurses-devel
说明:如果第一次配置出错,再次配置前删掉上一次的缓存文件
rm-f CMakeCache.txt4、编译
指定cpu个数编译
cat/proc/cpuinfo |grep processor|wc -l
make-j 2--------------------------指定多个CPU快速表编译5、安装
make install6、后续配置
初始化数据库(安装默认的库和表):
cd/mysql25#./mysql_install_db --help
--no-defaults:不要从任何的配置文件中读取相应的参数,忽略掉mysql安装过程中的默认配置,如创建默认用户并设置默认密码等#./mysql_install_db --basedir=/mysql25 --datadir=/mysql25/data --no-defaults --user=mysql
启动数据库:
报错:#service mysql25 start
Starting MySQL.The server quit without updating PID file (/mysql/data/vm1.uplook.com.pid).[FAILED]
解决:
chown mysql.mysql/mysql -R
环境变量:
export PATH=$PATH:/usr/local/mysql/bin#mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket'/var/lib/mysql/mysql.sock'(2)
[root@vm1 data]#mysql --socket=/data/mysql.sock
#ln -s /data/mysql.sock /var/lib/mysql/mysql.sock
#mysql
Welcome to the MySQL monitor. Commands end with ; or\g.
Your MySQL connection idis 2Server version:5.6.25Source distribution
Copyright (c)2000, 2014, Oracle and/orits affiliates. All rights reserved.
Oracleis a registered trademark of Oracle Corporation and/orits
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>exit
Bye##############################################################################
总结:1、修改配置文件重新指定了pid文件的路径2、mysql的数据目录的权限问题或者pid文件的权限3、mysql数据库没有正常关闭导致5.7.17安装:
shell>groupadd mysql
shell> useradd -r -g mysql -s /bin/false mysql
shell> cd /usr/local
shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz
shell> ln -s full-path-to-mysql-VERSION-OS mysql
shell>cd mysql
shell> mkdir mysql-files
shell> chmod 750 mysql-files
shell> chown -R mysql .
shell> chgrp -R mysql .
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
shell> chown -R root .
shell> chown -R mysql data mysql-files
shell> bin/mysqld_safe --user=mysql &
#Next command is optional
shell> cp support-files/mysql.server /etc/init.d/mysql.server