部署时间有限,故我踩坑的地方,下面会先安装好相关依赖,按此去安装即可。不然后面可能会存在缺一些依赖。
环境交代:
首先要准备cmake的包和mysql的源码包。可以去官网下载,不懂怎么下载的可以问度娘。
我已准备cmake-2.8.12.2.tar.gz 和mysql-5.6.22.tar.gz 。下面直接进行安装。
第一步 cmake
# yum install cmake -y
# tar xf cmake-2.8.12.2.tar.gz
# cd cmake-2.8.12.2
# yum install -y gcc*
#./configure
# make -j 8 (根据电脑的内核数 写对应的数字)
附:最简单的CPU核数查看 先Top 再按1,就可以看到。
# make install
第二步 创建mysql用户及目录
考虑众多安全问题以mysql用户的身份来运行mysql服务。
# useradd -M -r -s /sbin/nologin mysql
# mkdir -p /mysql/data
# chown -R mysql.mysql /mysql/
第三步 mysql安装
# yum install ncurses-devel -y
# yum install openssl-devel -y
# yum install perl-Module-Build -y
// 因为大多数服务器最小化安装,故需要安装此项。
# tar xf mysql-5.6.22.tar.gz
# cd mysql-5.6.22
# rm -rf CMakeCache.txt
// cmake的缓存清理,失败后每次都需要删除此文件。
# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/mysql/data \
-DDEFAULT_CHARSET=utf8 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_SSL=system \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1
编译选项根据需求来选择
# make -j 8 (根据电脑的内核数 写对应的数字)
# make install
第四步 mysql初始化
# cd /usr/local/mysql/
# ./scripts/mysql_install_db --user=mysql --datadir=/mysql/data/
# cd /usr/local/mysql/
# vim /etc/my.cnf(可先只留最后一行,后续有相应需求再添加)
# ./bin/mysqld_safe --user=mysql &
# ./bin/mysql
第五步 mysql环境变量的设置
# vim /etc/profile.d/mysql.sh(新建)
# export PATH=/usr/local/mysql/bin:$PATH
# source /etc/profile.d/mysql.sh
# mysql(可直接进入数据库)
第六步 执行mysql_secure_installation
mysql_secure_installation 初次安装数据库后安全相关设置命令
相关内容
设置 root 密码
enter-->yes-->password
匿名用户
是否移除匿名用户(y/n) y
不允许远程(y/n)
删除test库(y/n)
重载权限(y/n)
第七步 开机自启
# cp -p /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# chkconfig --add mysqld
将mysqld添加到chkconfig管理的开机启动中
# chkconfig --list |grep mysqld
查看mysqld在各运行级别中是否开机启动
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
常见问题及需求的整理
常见报错处理
报错信息1
# remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu,
# package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.
解决方法1
# yum install ncurses-devel
# rm -rf CMakeCache.txt
报错信息2
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
OPENSSL_INCLUDE_DIR
解决方法2
# yum install openssl-devel -y
报错及处理
报错:C compiler(编译器) 解决:安装 #yum install gcc* -y
授权问题
权限:(权限相关文件都存放于mysql数据库中)
全局权限存放在 mysql.user中,此表联合主键host+user。
授权 : grant 存在授权,不存在创建。
grant 权限列表 on 库名.表名 to 用户@'主机' identified by '密码字符串';
全局权限:(user)*.* 所有库所有表
grant select on *.* to x@'%' identified by 'pwd'; x@localhost
//具有全局的select用户,可任何主机登录
flush privileges;
库级权限: (db) 库名.*
表级权限:(tables_priv) 库名.表名
grant select on qianfeng.pass to xtable@'%' identified by 'pwd';
列级权限:(colummns_priv) (列) on 指定库.表
grant select(username) on qianfeng.passwd to xc@'%';
要求授权一个用户,该用户要有创建库的权限
grant all privileges on *.* to x@localhost identified by 'pwd';
要求mysql表不区分大小写
# vim /etc/my.cnf
[mysqld]
lower_case_table_names=1 #1为不区分大小写,0区分大小写
重启mysql服务
# /usr/local/mysql/bin/mysqladmin shutdown
# /usr/local/mysql/bin/mysqld_safe --user=mysql &