linux下MySQL安装及设置
2016-05-03 00:11
519 查看
MySQL有两种安装方式:源码包安装和二进制包安装。
这两种方式各有特色:二位制包安装不需编译,针对不同的平台有经过优化编译的不同的二进制文件以及 包格式,安装简单方便;源码包则必须先配置编译再安装,可以根据你所用的主机环境进行优化,选择最佳的配置值,安装定制更灵活。
一、Mysql源码安装
下载地址:http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.15.tar.gz
Linux下MySQL源码安装(eg:mysql-5.6.27.tar.gz ):
yum install -y perl-Module-Install.noarch
网址:
https://cmake.org/download/
ftp://invisible-island.net/ncurses/
http://ftp.kaist.ac.kr/mysql/Downloads/
环境:
mysql-5.6.27.tar.gz
CentOS release 6.5 (Final)
2:若未安装,安装cmake:
[plain] view plain copy
[root@tsxs installfiles]# tar zxvf cmake-3.3.2.tar.gz
[root@tsxs installfiles]# cd cmake-3.3.2
[root@tsxs cmake-3.3.2]# ls
Auxiliary CMakeCPack.cmake CMakeGraphVizOptions.cmake CMakeLogo.gif
CompileFlags.cmake CONTRIBUTING.rst CTestConfig.cmake DartConfig.cmake Help
Modules Source Tests bootstrap CMakeCPackOptions.cmake.in CMakeLists.txt
cmake_uninstall.cmake.in configure Copyright.txt CTestCustom.cmake.in doxygen.config
Licenses README.rst Templates Utilities
[root@tsxs cmake-3.3.2]# ./bootstrap
[root@tsxs cmake-3.3.2]# make
[root@tsxs cmake-3.3.2]# make install
测试:输入有关cmake的使用命令:
注:CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。 可以一次:make && make install
[plain] view plain copy
[root@tsxs installfiles]# cmake --version
[root@tsxs installfiles]# cmake --help
数据库添加用户和组:
[plain] view plain copy
查看是否存在MySQL组:
[root@tsxs home]# grep mysql /etc/group
不存在创建MySQL组:
[root@tsxs home]# groupadd mysql
查看是否存在MySQL用户:
[root@tsxs home]# grep mysql /etc/passwd
不存在创建MySQL用户:
[root@tsxs ~]# useradd mysql -g mysql -M -s /sbin/nologin
检查:
[root@tsxs sbin]# grep mysql /etc/passwd
mysql:x:500:500::/home/mysql:/sbin/nologin
使用groups查看用户mysql所在的组
[root@tsxs sbin]# groups mysql
mysql : mysql
注:-g:指定新用户所属的用户组(group); -M:不建立根目录;-s:定义其使用的shell,/sbin/nologin代表用户不能登录系统。
注:也可以:
[plain] view plain copy
[root@Master home]# useradd mysql -g mysql -d /usr/local/mysql -s /bin/sh
如果有,请修改:
[plain] view plain copy
[root@tsxs bin]# usermod -s /bin/sh -d /usr/local/mysql -g mysql mysql
-d:用户的登录主目录/usr/local/mysql,-s用户的登录Shell是/bin/sh
可查看:[root@tsxs bin]# vim /etc/passwd
mysql:x:500:500::/usr/local/mysql:/bin/sh
解压:
[plain] view plain copy
[root@tsxs installfiles]# tar zxvf mysql-5.6.27.tar.gz
[root@tsxs installfiles]# cd mysql-5.6.27
[root@tsxs mysql-5.6.27]# ls
BUILD cmake config.h.cmake dbug extra
INSTALL-WIN-SOURCE libmysqld mysql-test packaging regex
sql-bench strings unittest win BUILD-CMAKE
CMakeLists.txt configure.cmake Docs include libevent
libservices mysys plugin scripts sql-common support-files
VERSION zlib client cmd-line-utils COPYING Doxyfile-perfschema
INSTALL-SOURCE libmysql man mysys_ssl README sql storage tests vio
准备安装目录:
安装MySQL目录:/usr/local/mysql
[plain] view plain copy
[root@tsxs local]# mkdir -p /usr/local/mysql
MySQL数据库目录:/data
[plain] view plain copy
[root@tsxs /]# mkdir /data
注:-p参数:如果一个目录的父目录不存在,就创建它
编译源代码:
[root@tsxs mysql-5.6.27]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
或
[plain] view plain copy
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_bin -DEXTRA_CHARSETS=all -DENABLED_LOCAL_INFILE=1
注:MySQL安装目录
[plain] view plain copy
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql
MySQL数据库存放目录
-DINSTALL_DATADIR=/data
使用utf8字符
-DDEFAULT_CHARSET=utf8
校验字符
-DDEFAULT_COLLATION=utf8_bin
安装所有扩展字符集
-DEXTRA_CHARSETS=all
允许从本地导入数据
-DENABLED_LOCAL_INFILE=1
注:-D 标志这种特性为大多数编译器所支持,是传递给编译器的主要参数,绝对路径
编译源代码:
[plain] view plain copy
[root@tsxs mysql-5.6.27]# make
安装:
[plain] view plain copy
[root@tsxs mysql-5.6.27]# make install
也可一次:make && make install
注:
[plain] view plain copy
[root@Master /]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_bin -DEXTRA_CHARSETS=all -DENABLED_LOCAL_INFILE=1
[root@Master /]# make && make install
[root@Master mysql]# ./scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data --user=mysql
注:初始化日志,为下,则初始化成功:附件日志1!
安装完毕,查看安装目录 eg:/usr/local/mysql :
[plain] view plain copy
[root@tsxs mysql]# ls
bin COPYING data docs include INSTALL-BINARY lib man mysql-test README scripts share sql-bench support-files
初始化MySQL数据库[b](在安装目录下):[/b]
[plain] view plain copy
[root@tsxs mysql]# ./scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data --user=mysql
设置,配置文件,copy(在安装目录下):
[plain] view plain copy
[root@tsxs support-files]# cp -R my-default.cnf /etc/my.cnf
设置启动服务[b](在安装目录下):[/b]
[plain] view plain copy
[root@Master support-files]# cp -R mysql.server /etc/rc.d/init.d/mysqld
更改权限(涉及到MySQL数据库的文件和目录都属于mysql用户):
注:不仅减少了root用户的登录和管理时间,同样也提高了安全性。注:chown在授权目录下,执行:
[plain] view plain copy
[root@tsxs /]# chown -R mysql.mysql /data
[root@Master mysql]# pwd
/usr/local/mysql
[root@Master mysql]# chown -R mysql.mysql /usr/local/mysql/
[root@tsxs etc]# chown -R mysql.mysql /etc/my.cnf
[root@tsxs init.d]# chown -R mysql.mysql mysqld
启动MySQL服务:
[plain] view plain copy
[root@tsxs bin]# ./mysqld_safe --user=mysql &
或者:
[plain] view plain copy
[root@tsxs bin]# service mysqld start
Starting MySQL SUCCESS!
[root@tsxs bin]# service mysqld restart
Shutting down MySQL. SUCCESS!
Starting MySQL. SUCCESS!
[root@tsxs bin]# service mysqld stop
Shutting down MySQL. SUCCESS!
如果使用MySQL的一些命令需要配置,将这些命令加入到系统环境变量,让他生效::
MySQL的命令目录:
[plain] view plain copy
[root@tsxs ~]# cd /usr/local/mysql/bin/
[plain] view plain copy
[root@tsxs init.d]# vim /etc/profile
[plain] view plain copy
#MySQL
export MYSQL_HOME=/usr/local/mysql
export PATH=$MYSQL_HOME/bin:$PATH
[plain] view plain copy
[root@tsxs init.d]# source /etc/profile
启动MySQL客户端client,并修改配置文件:
在下边MySQL配置文件加入客户端,登陆信息:
[plain] view plain copy
[root@tsxs bin]# vim /etc/my.cnf
[plain] view plain copy
# The following options will be passed to all MySQL clients
[client]
#password = your_password
port = 3306
socket = /data/mysql.sock
[plain] view plain copy
# The MySQL server
[mysqld]
basedir = /usr/local/mysql
datadir = /data
port = 3306
socket = /data/mysql.sock
log-error = /data/mysql-error.log
pid-file = /data/mysql.pid
user = mysql
启动MySQL客户端,第一次未设置密码:
[plain] view plain copy
[root@tsxs tmp]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.27 Source distribution
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> quit
Bye
设置mysql为开机启动:
[plain] view plain copy
[root@Master init.d]# chkconfig --add mysqld
[root@Master init.d]# chkconfig mysqld on
[root@Master init.d]# chkconfig --list | grep mysql
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
# rm -f CMakeCache.txt
以及安装软件涉及到其他文件,eg:
# rm -rf /etc/my.cnf
[root@tsxs installfiles]# cd ncurses-6.0
[root@tsxs ncurses-6.0]# ls
aclocal.m4 announce.html.in config.guess configure.in dist.mk include
Makefile.in MANIFEST mk-0th.awk mk-hdr.awk package README test
Ada95 AUTHORS config.sub convert_configure.pl doc INSTALL
Makefile.os2 menu mk-1st.awk ncurses panel README.emx TO-DO
ANNOUNCE c++ configure COPYING form install-sh
man misc mk-2nd.awk NEWS progs README.MinGW VERSION
按照你的系统环境制作安装配置文件:
[plain] view plain copy
[root@tsxs ncurses-6.0]# ./configure
编译源代码并且编译NCURSES库:
[plain] view plain copy
[root@tsxs ncurses-6.0]# make
安装编译好的NCURSES库:
[plain] view plain copy
[root@tsxs ncurses-6.0]# make install
检测:
[plain] view plain copy
[root@tsxs bin]# man ncurses
或在目录:
/usr/lib下查找是否有libncurses.so或libncurses.a这个库
问题回答:
问题1:
-- Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
CMake Error at cmake/readline.cmake:85 (MESSAGE):
Curses library not found. Please install appropriate package,
解决1:
安装:ncurses,即可!
问题2:
[root@tsxs init.d]# service mysqld start
Starting MySQL. ERROR! The server quit without updating PID file (/data/mysql.pid).
[root@tsxs init.d]# service mysqld status
ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql) exists
# The following options will be passed to all MySQL clients
[client]
#password = your_password
port = 3306
socket = /data/mysql.sock
# The MySQL server
[mysqld]
basedir = /usr/local/mysql
datadir = /data
port = 3306
socket = /data/mysql.sock
log-error = /data/mysql-error.log
pid-file = /data/mysql.pid
user = mysql
[plain] view plain copy
[root@tsxs local]# chown -R mysql.mysql /usr/local/mysql/
[root@tsxs /]# chown -R mysql.mysql /data
[root@tsxs etc]# chown -R mysql.mysql /etc/my.cnf
[root@tsxs init.d]# chown -R mysql.mysql mysqld
注:若不能解决请关注:
1:查看:vim /etc/passwd ---> mysql:x:500:500::/usr/local/mysql:/bin/sh ---> 下mysql用户的权限和路径
2:是否安装,ncurses-devel和perl-Module-Install.noarch
3:此原因是因为,/data/mysql.pid文件的创建者为root,所以:关注1很重要!文章尾备注日志2!
4:查看,安装路径/etc/local/mysql和/data和/etc/my.cnf和启动脚本的拥有者和权限(chown/chomd)
5:花了好多时间解决问题3,甚至查启动日志,好久,最后发现,重启一下,reboot就好了!
备注图片1,2:最后!
问题3:
Error3:
[root@tsxs init.d]# mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
解决3:
问题2的MySQL配置文件client的那个配置加入即可,指定mysql.sock位置!
错误4:
[root@Master cmake-3.3.2]# ./bootstrap
---------------------------------------------
CMake 3.3.2, Copyright 2000-2015 Kitware, Inc.
C compiler on this system is: cc
---------------------------------------------
Error when bootstrapping CMake:
Cannot find appropriate C++ compiler on this system.
Please specify one using environment variable CXX.
See cmake_bootstrap.log for compilers attempted.
---------------------------------------------
Log of errors: /home/installfiles/resourceinstall-mysql/cmake-3.3.2/Bootstrap.cmk/cmake_bootstrap.log
---------------------------------------------
解决4:
[plain] view plain copy
[root@Master cmake-3.3.2]# yum -y install gcc-c++
问题5:
[root@Master mysql]# ./scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data --user=mysql
FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db:
Data::Dumper
解决5(centos最小安装):
[plain] view plain copy
[root@Master scripts]# yum install -y perl-Module-Install.noarch
问题6:
[root@Master init.d]# service mysqld start
2015-11-08 00:57:58 0 [Warning] TIMESTAMP with implicit DEFAULT value is
deprecated. Please use --explicit_defaults_for_timestamp server option
(see documentation for more details).
2015-11-08 00:57:58 0 [Note] /etc/init.d/mysqld (mysqld 5.6.27) starting as process 14599 ...
或mysql启动报错:Segmentation fault
解决6:
[plain] view plain copy
[root@Master data]# yum install -y ncurses-devel
注:然后删除:/data和/usr/local/mysql/两个目录,重新解压编译安装!别嫌麻烦!
或:
[plain] view plain copy
[root@Master ~]# vim /etc/my.cnf
加入(此法并未解决):
[plain] view plain copy
[mysqld]
explicit_defaults_for_timestamp=true
注:
[plain] view plain copy
这是数据库升级过程中,timestamp在5.6以前的数据库中默认not null,如果没有显示声明timestamp的默认值,那么该列用全0的"0000-00-00 00:00:00"作为默认值
在5.6中后,时间值是不能为全0格式,添加explicit_defaults_for_timestamp 参数
添加之后,timestamp列可以设置默认为空,并且不填充0,如果填充了0,如果SQL_MODE为strict sql则会报错除非显示指定default current_time和on update current_time
加入explicit_defaults_for_timestamp=true后,创建表timestamp类型Default值已经默认null了
CMAKE_INSTALL_PREFIX
值是安装的基本目录,其他cmake选项值是不包括前缀,是相对路径名,绝对路径包括 CMAKE_INSTALL_PREFIX:MySQL的安装目
录。如-DINSTALL_SBINDIR=sbin的绝对路径是 /sbin
注:-D 标志这种特性为大多数编译器所支持,是传递给编译器的主要参数,绝对路径
2:MySQL存储引擎选项
mysql存储引擎是插件式的,因此插件控制选项可以指定那个存储引擎安装。
configure编译插件选项--with-plugins=csv,myisam,myisammrg,heap,innobase,
archive,blackhole在cmake中没有直接对应的相同选项。对于csv,myisam,myisammrg,heap在cmake中是不需要明确指定存储引擎的名称,因为它们是强制性安装。
3:可以使用以下选择来安装innodb,archive,blackhole存储引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
注:1也可以使用on代替
如
果既不是-DWITH_<ENGINE>_STORAGE_ENGINE 也不
是 -DWITHOUT_<ENGINE>_STORAGE_ENGINE 来指定存储引擎,该存储引擎将安装成共享模块式的。如果不是共享
模块式的将排除在外。共享模块安装时必须使用INSTALL PLUGIN语句或--plugin-load才可以使用。
4:其他选项
之前MySQL的编译选项大多数都支持。新旧版本之间的安装选项映射成大写字母,删除选项前面破折号,中间字符间的破折号替换成下划线。如:
--with-debug => WITH_DEBUG=1
--with-embedded-server => WITH_EMBEDDED_SERVER
5:调试配置过程
使用configure编译完将生成config.log和config.status文件。
使用cmake编译完在CMakeFiles目录下生成CMakeError.log 和CMakeOutput.log文件。
编译参数参考:
[plain] view plain copy
BUILD_CONFIG 采用官方发行版一致的编译参数
CMAKE_BUILD_TYPE 指定产品编译说明信息 RelWithDebInf
CMAKE_INSTALL_PREFIX 指定MySQL安装路径 /usr/local/mysql
CPACK_MONOLITHIC_INSTALL是否建立单个安装包文件 OFF 5.6.7
DEFAULT_CHARSET MYSQL 默认字符集 latin1 5.6.7
DEFAULT_COLLATION MYSQL 默认排序字符集 latin1_swedish_ci 5.6.7
ENABLE_DEBUG_SYNC 是否启用同步调试功能 ON 5.6.7
ENABLE_DOWNLOADS 是否下载可选文件 OFF 5.6.7
ENABLE_DTRACE 是否包含 DTrace 支持 5.6.7
ENABLE_GCOV 是否包含 Gcov 支持 5.5.14
ENABLED_LOCAL_INFILE 是否启用本地 LOAD DATA INFILE OFF 5.6.7
ENABLED_PROFILING 是否启用代码查询分析 ON 5.6.7
INSTALL_BINDIR MySQL 主执行文件目录 PREFIX/bin 5.6.7
INSTALL_DOCDIR 文档安装路径 PREFIX/docs 5.6.7
INSTALL_DOCREADMEDIR 自述文件目录 PREFIX 5.6.7
INSTALL_INCLUDEDIR 头文件目录 PREFIX/include 5.6.7
INSTALL_INFODIR 关于信息文件目录 PREFIX/docs 5.6.7
INSTALL_LAYOUT 选择预定义的安装 STANDALONE 5.6.7
INSTALL_LIBDIR 库文件目录 PREFIX/lib 5.6.7
INSTALL_MANDIR 手册页面目录 PREFIX/man 5.6.7
INSTALL_MYSQLSHAREDIR 共享数据目录 PREFIX/share 5.6.7
INSTALL_MYSQLTESTDIR mysql-test 目录 PREFIX/mysql-test 5.6.7
INSTALL_PLUGINDIR 插件目录 PREFIX/lib/plugin 5.6.7
INSTALL_SBINDIR 服务器超级用户执行文件目录 PREFIX/bin 5.6.7
INSTALL_SCRIPTDIR 脚本目录 PREFIX/scripts 5.6.7
INSTALL_SHAREDIR aclocal/mysql.m4 安装目录 PREFIX/share 5.6.7
INSTALL_SQLBENCHDIR sql-bench 性能测试工具目录 PREFIX 5.6.7
INSTALL_SUPPORTFILESDIR 扩展支持文件目录 PREFIX/support-files 5.6.7
MYSQL_DATADIR 数据库存放目录 5.6.7
MYSQL_MAINTAINER_MODE 是否启用MySQL的维护环境 OFF 5.6.7
MYSQL_TCP_PORT TCP/IP 端口号 3306 5.6.7
MYSQL_UNIX_ADDR Unix Socket 套接字文件 /tmp/mysql.sock 5.6.7
SYSCONFDIR 选项配置文件目录 5.6.7
WITH_COMMENT 编译环境发表评论 5.6.7
WITH_DEBUG 是否包括调试支持 OFF 5.6.7
WITH_EMBEDDED_SERVER 是否要建立嵌入式服务器 OFF 5.6.7
WITH_xxx_STORAGE_ENGINE 静态编译xxx 存储引擎到服务器 5.6.7
WITH_EXTRA_CHARSETS 额外的字符集,包括 all 5.6.7
WITH_LIBWRAP 是否包括支持libwrap(TCP包装) OFF 5.6.7
WITH_READLINE 使用捆绑的readline OFF 5.6.7
WITH_SSL 是否支持SSL no 5.6.7
WITH_ZLIB 是否支持Zlib system 5.6.7
WITHOUT_XXX_STORAGE_ENGINE 不编译XXX存储引擎到数据库
2015-11-15 18:18:41 0 [Note] /usr/local/mysql/bin/mysqld (mysqld 5.6.27) starting as process 19263 ...
2015-11-15 18:18:41 19263 [Note] InnoDB: Using atomics to ref count buffer pool pages
………………
………………
The latest information about MySQL is available on the web at
http://www.mysql.com
Support MySQL by buying support/licenses at http://shop.mysql.com
New default config file was created as /usr/local/mysql/my.cnf and
will be used by default by the server when you start it.
You may edit this file to change server settings
root 14043 1 0 19:30 pts/1 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data --pid-file=/data/tsxs.pid
mysql 14158 14043 0 19:30 pts/1 00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/tsxs.err --pid-file=/data/tsxs.pid
root 14191 958 0 19:35 pts/0 00:00:00 grep mysql
[b][b]
[b]备注图片1,2:
[/b][/b][/b]
这两种方式各有特色:二位制包安装不需编译,针对不同的平台有经过优化编译的不同的二进制文件以及 包格式,安装简单方便;源码包则必须先配置编译再安装,可以根据你所用的主机环境进行优化,选择最佳的配置值,安装定制更灵活。
一、Mysql源码安装
下载地址:http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.15.tar.gz
Linux下MySQL源码安装(eg:mysql-5.6.27.tar.gz ):
yum install -y perl-Module-Install.noarch
网址:
https://cmake.org/download/
ftp://invisible-island.net/ncurses/
http://ftp.kaist.ac.kr/mysql/Downloads/
环境:
mysql-5.6.27.tar.gz
CentOS release 6.5 (Final)
2:若未安装,安装cmake:
[plain] view plain copy
[root@tsxs installfiles]# tar zxvf cmake-3.3.2.tar.gz
[root@tsxs installfiles]# cd cmake-3.3.2
[root@tsxs cmake-3.3.2]# ls
Auxiliary CMakeCPack.cmake CMakeGraphVizOptions.cmake CMakeLogo.gif
CompileFlags.cmake CONTRIBUTING.rst CTestConfig.cmake DartConfig.cmake Help
Modules Source Tests bootstrap CMakeCPackOptions.cmake.in CMakeLists.txt
cmake_uninstall.cmake.in configure Copyright.txt CTestCustom.cmake.in doxygen.config
Licenses README.rst Templates Utilities
[root@tsxs cmake-3.3.2]# ./bootstrap
[root@tsxs cmake-3.3.2]# make
[root@tsxs cmake-3.3.2]# make install
测试:输入有关cmake的使用命令:
注:CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。 可以一次:make && make install
[plain] view plain copy
[root@tsxs installfiles]# cmake --version
[root@tsxs installfiles]# cmake --help
数据库添加用户和组:
[plain] view plain copy
查看是否存在MySQL组:
[root@tsxs home]# grep mysql /etc/group
不存在创建MySQL组:
[root@tsxs home]# groupadd mysql
查看是否存在MySQL用户:
[root@tsxs home]# grep mysql /etc/passwd
不存在创建MySQL用户:
[root@tsxs ~]# useradd mysql -g mysql -M -s /sbin/nologin
检查:
[root@tsxs sbin]# grep mysql /etc/passwd
mysql:x:500:500::/home/mysql:/sbin/nologin
使用groups查看用户mysql所在的组
[root@tsxs sbin]# groups mysql
mysql : mysql
注:-g:指定新用户所属的用户组(group); -M:不建立根目录;-s:定义其使用的shell,/sbin/nologin代表用户不能登录系统。
注:也可以:
[plain] view plain copy
[root@Master home]# useradd mysql -g mysql -d /usr/local/mysql -s /bin/sh
如果有,请修改:
[plain] view plain copy
[root@tsxs bin]# usermod -s /bin/sh -d /usr/local/mysql -g mysql mysql
-d:用户的登录主目录/usr/local/mysql,-s用户的登录Shell是/bin/sh
可查看:[root@tsxs bin]# vim /etc/passwd
mysql:x:500:500::/usr/local/mysql:/bin/sh
解压:
[plain] view plain copy
[root@tsxs installfiles]# tar zxvf mysql-5.6.27.tar.gz
[root@tsxs installfiles]# cd mysql-5.6.27
[root@tsxs mysql-5.6.27]# ls
BUILD cmake config.h.cmake dbug extra
INSTALL-WIN-SOURCE libmysqld mysql-test packaging regex
sql-bench strings unittest win BUILD-CMAKE
CMakeLists.txt configure.cmake Docs include libevent
libservices mysys plugin scripts sql-common support-files
VERSION zlib client cmd-line-utils COPYING Doxyfile-perfschema
INSTALL-SOURCE libmysql man mysys_ssl README sql storage tests vio
准备安装目录:
安装MySQL目录:/usr/local/mysql
[plain] view plain copy
[root@tsxs local]# mkdir -p /usr/local/mysql
MySQL数据库目录:/data
[plain] view plain copy
[root@tsxs /]# mkdir /data
注:-p参数:如果一个目录的父目录不存在,就创建它
编译源代码:
[root@tsxs mysql-5.6.27]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
或
[plain] view plain copy
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_bin -DEXTRA_CHARSETS=all -DENABLED_LOCAL_INFILE=1
注:MySQL安装目录
[plain] view plain copy
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql
MySQL数据库存放目录
-DINSTALL_DATADIR=/data
使用utf8字符
-DDEFAULT_CHARSET=utf8
校验字符
-DDEFAULT_COLLATION=utf8_bin
安装所有扩展字符集
-DEXTRA_CHARSETS=all
允许从本地导入数据
-DENABLED_LOCAL_INFILE=1
注:-D 标志这种特性为大多数编译器所支持,是传递给编译器的主要参数,绝对路径
编译源代码:
[plain] view plain copy
[root@tsxs mysql-5.6.27]# make
安装:
[plain] view plain copy
[root@tsxs mysql-5.6.27]# make install
也可一次:make && make install
注:
[plain] view plain copy
[root@Master /]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_bin -DEXTRA_CHARSETS=all -DENABLED_LOCAL_INFILE=1
[root@Master /]# make && make install
[root@Master mysql]# ./scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data --user=mysql
注:初始化日志,为下,则初始化成功:附件日志1!
安装完毕,查看安装目录 eg:/usr/local/mysql :
[plain] view plain copy
[root@tsxs mysql]# ls
bin COPYING data docs include INSTALL-BINARY lib man mysql-test README scripts share sql-bench support-files
初始化MySQL数据库[b](在安装目录下):[/b]
[plain] view plain copy
[root@tsxs mysql]# ./scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data --user=mysql
设置,配置文件,copy(在安装目录下):
[plain] view plain copy
[root@tsxs support-files]# cp -R my-default.cnf /etc/my.cnf
设置启动服务[b](在安装目录下):[/b]
[plain] view plain copy
[root@Master support-files]# cp -R mysql.server /etc/rc.d/init.d/mysqld
更改权限(涉及到MySQL数据库的文件和目录都属于mysql用户):
注:不仅减少了root用户的登录和管理时间,同样也提高了安全性。注:chown在授权目录下,执行:
[plain] view plain copy
[root@tsxs /]# chown -R mysql.mysql /data
[root@Master mysql]# pwd
/usr/local/mysql
[root@Master mysql]# chown -R mysql.mysql /usr/local/mysql/
[root@tsxs etc]# chown -R mysql.mysql /etc/my.cnf
[root@tsxs init.d]# chown -R mysql.mysql mysqld
启动MySQL服务:
[plain] view plain copy
[root@tsxs bin]# ./mysqld_safe --user=mysql &
或者:
[plain] view plain copy
[root@tsxs bin]# service mysqld start
Starting MySQL SUCCESS!
[root@tsxs bin]# service mysqld restart
Shutting down MySQL. SUCCESS!
Starting MySQL. SUCCESS!
[root@tsxs bin]# service mysqld stop
Shutting down MySQL. SUCCESS!
如果使用MySQL的一些命令需要配置,将这些命令加入到系统环境变量,让他生效::
MySQL的命令目录:
[plain] view plain copy
[root@tsxs ~]# cd /usr/local/mysql/bin/
[plain] view plain copy
[root@tsxs init.d]# vim /etc/profile
[plain] view plain copy
#MySQL
export MYSQL_HOME=/usr/local/mysql
export PATH=$MYSQL_HOME/bin:$PATH
[plain] view plain copy
[root@tsxs init.d]# source /etc/profile
启动MySQL客户端client,并修改配置文件:
在下边MySQL配置文件加入客户端,登陆信息:
[plain] view plain copy
[root@tsxs bin]# vim /etc/my.cnf
[plain] view plain copy
# The following options will be passed to all MySQL clients
[client]
#password = your_password
port = 3306
socket = /data/mysql.sock
[plain] view plain copy
# The MySQL server
[mysqld]
basedir = /usr/local/mysql
datadir = /data
port = 3306
socket = /data/mysql.sock
log-error = /data/mysql-error.log
pid-file = /data/mysql.pid
user = mysql
启动MySQL客户端,第一次未设置密码:
[plain] view plain copy
[root@tsxs tmp]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.27 Source distribution
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> quit
Bye
设置mysql为开机启动:
[plain] view plain copy
[root@Master init.d]# chkconfig --add mysqld
[root@Master init.d]# chkconfig mysqld on
[root@Master init.d]# chkconfig --list | grep mysql
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
# rm -f CMakeCache.txt
以及安装软件涉及到其他文件,eg:
# rm -rf /etc/my.cnf
[root@tsxs installfiles]# cd ncurses-6.0
[root@tsxs ncurses-6.0]# ls
aclocal.m4 announce.html.in config.guess configure.in dist.mk include
Makefile.in MANIFEST mk-0th.awk mk-hdr.awk package README test
Ada95 AUTHORS config.sub convert_configure.pl doc INSTALL
Makefile.os2 menu mk-1st.awk ncurses panel README.emx TO-DO
ANNOUNCE c++ configure COPYING form install-sh
man misc mk-2nd.awk NEWS progs README.MinGW VERSION
按照你的系统环境制作安装配置文件:
[plain] view plain copy
[root@tsxs ncurses-6.0]# ./configure
编译源代码并且编译NCURSES库:
[plain] view plain copy
[root@tsxs ncurses-6.0]# make
安装编译好的NCURSES库:
[plain] view plain copy
[root@tsxs ncurses-6.0]# make install
检测:
[plain] view plain copy
[root@tsxs bin]# man ncurses
或在目录:
/usr/lib下查找是否有libncurses.so或libncurses.a这个库
问题回答:
问题1:
-- Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
CMake Error at cmake/readline.cmake:85 (MESSAGE):
Curses library not found. Please install appropriate package,
解决1:
安装:ncurses,即可!
问题2:
[root@tsxs init.d]# service mysqld start
Starting MySQL. ERROR! The server quit without updating PID file (/data/mysql.pid).
[root@tsxs init.d]# service mysqld status
ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql) exists
# The following options will be passed to all MySQL clients
[client]
#password = your_password
port = 3306
socket = /data/mysql.sock
# The MySQL server
[mysqld]
basedir = /usr/local/mysql
datadir = /data
port = 3306
socket = /data/mysql.sock
log-error = /data/mysql-error.log
pid-file = /data/mysql.pid
user = mysql
[plain] view plain copy
[root@tsxs local]# chown -R mysql.mysql /usr/local/mysql/
[root@tsxs /]# chown -R mysql.mysql /data
[root@tsxs etc]# chown -R mysql.mysql /etc/my.cnf
[root@tsxs init.d]# chown -R mysql.mysql mysqld
注:若不能解决请关注:
1:查看:vim /etc/passwd ---> mysql:x:500:500::/usr/local/mysql:/bin/sh ---> 下mysql用户的权限和路径
2:是否安装,ncurses-devel和perl-Module-Install.noarch
3:此原因是因为,/data/mysql.pid文件的创建者为root,所以:关注1很重要!文章尾备注日志2!
4:查看,安装路径/etc/local/mysql和/data和/etc/my.cnf和启动脚本的拥有者和权限(chown/chomd)
5:花了好多时间解决问题3,甚至查启动日志,好久,最后发现,重启一下,reboot就好了!
备注图片1,2:最后!
问题3:
Error3:
[root@tsxs init.d]# mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
解决3:
问题2的MySQL配置文件client的那个配置加入即可,指定mysql.sock位置!
错误4:
[root@Master cmake-3.3.2]# ./bootstrap
---------------------------------------------
CMake 3.3.2, Copyright 2000-2015 Kitware, Inc.
C compiler on this system is: cc
---------------------------------------------
Error when bootstrapping CMake:
Cannot find appropriate C++ compiler on this system.
Please specify one using environment variable CXX.
See cmake_bootstrap.log for compilers attempted.
---------------------------------------------
Log of errors: /home/installfiles/resourceinstall-mysql/cmake-3.3.2/Bootstrap.cmk/cmake_bootstrap.log
---------------------------------------------
解决4:
[plain] view plain copy
[root@Master cmake-3.3.2]# yum -y install gcc-c++
问题5:
[root@Master mysql]# ./scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data --user=mysql
FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db:
Data::Dumper
解决5(centos最小安装):
[plain] view plain copy
[root@Master scripts]# yum install -y perl-Module-Install.noarch
问题6:
[root@Master init.d]# service mysqld start
2015-11-08 00:57:58 0 [Warning] TIMESTAMP with implicit DEFAULT value is
deprecated. Please use --explicit_defaults_for_timestamp server option
(see documentation for more details).
2015-11-08 00:57:58 0 [Note] /etc/init.d/mysqld (mysqld 5.6.27) starting as process 14599 ...
或mysql启动报错:Segmentation fault
解决6:
[plain] view plain copy
[root@Master data]# yum install -y ncurses-devel
注:然后删除:/data和/usr/local/mysql/两个目录,重新解压编译安装!别嫌麻烦!
或:
[plain] view plain copy
[root@Master ~]# vim /etc/my.cnf
加入(此法并未解决):
[plain] view plain copy
[mysqld]
explicit_defaults_for_timestamp=true
注:
[plain] view plain copy
这是数据库升级过程中,timestamp在5.6以前的数据库中默认not null,如果没有显示声明timestamp的默认值,那么该列用全0的"0000-00-00 00:00:00"作为默认值
在5.6中后,时间值是不能为全0格式,添加explicit_defaults_for_timestamp 参数
添加之后,timestamp列可以设置默认为空,并且不填充0,如果填充了0,如果SQL_MODE为strict sql则会报错除非显示指定default current_time和on update current_time
加入explicit_defaults_for_timestamp=true后,创建表timestamp类型Default值已经默认null了
CMAKE_INSTALL_PREFIX
值是安装的基本目录,其他cmake选项值是不包括前缀,是相对路径名,绝对路径包括 CMAKE_INSTALL_PREFIX:MySQL的安装目
录。如-DINSTALL_SBINDIR=sbin的绝对路径是 /sbin
注:-D 标志这种特性为大多数编译器所支持,是传递给编译器的主要参数,绝对路径
2:MySQL存储引擎选项
mysql存储引擎是插件式的,因此插件控制选项可以指定那个存储引擎安装。
configure编译插件选项--with-plugins=csv,myisam,myisammrg,heap,innobase,
archive,blackhole在cmake中没有直接对应的相同选项。对于csv,myisam,myisammrg,heap在cmake中是不需要明确指定存储引擎的名称,因为它们是强制性安装。
3:可以使用以下选择来安装innodb,archive,blackhole存储引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
注:1也可以使用on代替
如
果既不是-DWITH_<ENGINE>_STORAGE_ENGINE 也不
是 -DWITHOUT_<ENGINE>_STORAGE_ENGINE 来指定存储引擎,该存储引擎将安装成共享模块式的。如果不是共享
模块式的将排除在外。共享模块安装时必须使用INSTALL PLUGIN语句或--plugin-load才可以使用。
4:其他选项
之前MySQL的编译选项大多数都支持。新旧版本之间的安装选项映射成大写字母,删除选项前面破折号,中间字符间的破折号替换成下划线。如:
--with-debug => WITH_DEBUG=1
--with-embedded-server => WITH_EMBEDDED_SERVER
5:调试配置过程
使用configure编译完将生成config.log和config.status文件。
使用cmake编译完在CMakeFiles目录下生成CMakeError.log 和CMakeOutput.log文件。
编译参数参考:
[plain] view plain copy
BUILD_CONFIG 采用官方发行版一致的编译参数
CMAKE_BUILD_TYPE 指定产品编译说明信息 RelWithDebInf
CMAKE_INSTALL_PREFIX 指定MySQL安装路径 /usr/local/mysql
CPACK_MONOLITHIC_INSTALL是否建立单个安装包文件 OFF 5.6.7
DEFAULT_CHARSET MYSQL 默认字符集 latin1 5.6.7
DEFAULT_COLLATION MYSQL 默认排序字符集 latin1_swedish_ci 5.6.7
ENABLE_DEBUG_SYNC 是否启用同步调试功能 ON 5.6.7
ENABLE_DOWNLOADS 是否下载可选文件 OFF 5.6.7
ENABLE_DTRACE 是否包含 DTrace 支持 5.6.7
ENABLE_GCOV 是否包含 Gcov 支持 5.5.14
ENABLED_LOCAL_INFILE 是否启用本地 LOAD DATA INFILE OFF 5.6.7
ENABLED_PROFILING 是否启用代码查询分析 ON 5.6.7
INSTALL_BINDIR MySQL 主执行文件目录 PREFIX/bin 5.6.7
INSTALL_DOCDIR 文档安装路径 PREFIX/docs 5.6.7
INSTALL_DOCREADMEDIR 自述文件目录 PREFIX 5.6.7
INSTALL_INCLUDEDIR 头文件目录 PREFIX/include 5.6.7
INSTALL_INFODIR 关于信息文件目录 PREFIX/docs 5.6.7
INSTALL_LAYOUT 选择预定义的安装 STANDALONE 5.6.7
INSTALL_LIBDIR 库文件目录 PREFIX/lib 5.6.7
INSTALL_MANDIR 手册页面目录 PREFIX/man 5.6.7
INSTALL_MYSQLSHAREDIR 共享数据目录 PREFIX/share 5.6.7
INSTALL_MYSQLTESTDIR mysql-test 目录 PREFIX/mysql-test 5.6.7
INSTALL_PLUGINDIR 插件目录 PREFIX/lib/plugin 5.6.7
INSTALL_SBINDIR 服务器超级用户执行文件目录 PREFIX/bin 5.6.7
INSTALL_SCRIPTDIR 脚本目录 PREFIX/scripts 5.6.7
INSTALL_SHAREDIR aclocal/mysql.m4 安装目录 PREFIX/share 5.6.7
INSTALL_SQLBENCHDIR sql-bench 性能测试工具目录 PREFIX 5.6.7
INSTALL_SUPPORTFILESDIR 扩展支持文件目录 PREFIX/support-files 5.6.7
MYSQL_DATADIR 数据库存放目录 5.6.7
MYSQL_MAINTAINER_MODE 是否启用MySQL的维护环境 OFF 5.6.7
MYSQL_TCP_PORT TCP/IP 端口号 3306 5.6.7
MYSQL_UNIX_ADDR Unix Socket 套接字文件 /tmp/mysql.sock 5.6.7
SYSCONFDIR 选项配置文件目录 5.6.7
WITH_COMMENT 编译环境发表评论 5.6.7
WITH_DEBUG 是否包括调试支持 OFF 5.6.7
WITH_EMBEDDED_SERVER 是否要建立嵌入式服务器 OFF 5.6.7
WITH_xxx_STORAGE_ENGINE 静态编译xxx 存储引擎到服务器 5.6.7
WITH_EXTRA_CHARSETS 额外的字符集,包括 all 5.6.7
WITH_LIBWRAP 是否包括支持libwrap(TCP包装) OFF 5.6.7
WITH_READLINE 使用捆绑的readline OFF 5.6.7
WITH_SSL 是否支持SSL no 5.6.7
WITH_ZLIB 是否支持Zlib system 5.6.7
WITHOUT_XXX_STORAGE_ENGINE 不编译XXX存储引擎到数据库
2015-11-15 18:18:41 0 [Note] /usr/local/mysql/bin/mysqld (mysqld 5.6.27) starting as process 19263 ...
2015-11-15 18:18:41 19263 [Note] InnoDB: Using atomics to ref count buffer pool pages
………………
………………
The latest information about MySQL is available on the web at
http://www.mysql.com
Support MySQL by buying support/licenses at http://shop.mysql.com
New default config file was created as /usr/local/mysql/my.cnf and
will be used by default by the server when you start it.
You may edit this file to change server settings
root 14043 1 0 19:30 pts/1 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data --pid-file=/data/tsxs.pid
mysql 14158 14043 0 19:30 pts/1 00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/tsxs.err --pid-file=/data/tsxs.pid
root 14191 958 0 19:35 pts/0 00:00:00 grep mysql
[b][b]
[b]备注图片1,2:
[/b][/b][/b]
相关文章推荐
- Linux中使用SecureCRT上传、下载文件命令sz与rz用法实例
- Linux 输入和输出
- Linux—查看远程Linux系统运行时间
- Linux—查看路由
- [工作日志] centos登录输入正确账号密码重复要求登录--解决办法
- 如何读取损坏的dvd内容
- Linux基础之终端、控制台、tty、pty等概念简介
- Linux中如何设置java环境变量
- Linux的SOCKET编程详解
- Y450笔记本XP换Linux CentOs 6.5记录
- Linux preemptible实现机制
- Linux preemptible实现机制
- Linux preemptible实现机制
- Linux preemptible实现机制
- Linux preemptible实现机制
- Linux preemptible实现机制
- Linux preemptible实现机制
- Linux preemptible实现机制
- Linux preemptible实现机制
- Linux preemptible实现机制