一、解决登录数据库时的不方便问题

1、添加环境变量(单机单实例好用,多实例会冲突,已最后一条记录为准)

echo 'export PATH=$PATH:$basedir/bin' >> /etc/profile

3、添加别名(解决启动时,连接指定接字文件问题)

echo 'alias mysql31='mysql -S /mysql31/mysql31.sock'' >> /etc/bashrc

4、创建命令软连接(别名方案替代方案)

ln $basedir/bin/mysql /etc/init.d/mysql

二、关键点及检测点

1、安装关键点及检测点

1>glibc安装

1,排陷阱mariadb-libs 
	检测:#rpm -q mariadb-libs
2,初始化mysql_install_db
	检测:#ls -d data/mysql
3,改权限:安装目录属主属组更改为mysql
	#chown -R mysql:mysql /usr/local/mysql
4,启动脚本 mysql.server
	检测:#ls /etc/init.d/mysql*
5,改密码mysqladmin/mysql_secure_installation
	检测:。。。登录吧
6,环境变量:echo ''export PATH=$PATH:$basedir/bin' >> /etc/profile
	检测:#tail -5 /etc/profile
7,单机多实例,通过套接字文件区分#mysql -S /tmp/mysql*.sock -u .....
	可通过别名机制来区分

2>配置文件

$basedir/my/cnf

#安装目录路径
basedir = /usr/local/mysql
#数据目录路径
datadir = /usr/local/mysql/data
#端口
port = 3306
#mysql服务器编号(必须唯一)
server_id = 10
#套接字文件路径
socket = /tmp/mysql35.sock
#错误日志路径
log-error = /usr/local/mysql/mysql.err
#编码字符集(默认为拉丁文)
character_set_server = utf8mb4

PS:
1,错误日志文件,mysql用户可能没有创建权限,最好提前手工创建好

3>cmake选项详解

  • 常用配置选项
配置选项描述默认值建议值
CMAKE_INSTALL_PREFIX安装目录(basedir)/usr/local/mysql根据需求
MYSQL_DATADIR数据目录(datadir)根据需求
SYSCONFDIR默认配置文件my.cnf路径/etc
MYSQL_TCP_PORTTCP/IP端口3306非默认端口
MYSQL_UNIX_ADDR套接字socket文件路径/tmp/mysql.sock$basedir/
DEFAULT_CHARSET默认字符集latin1(拉丁文)utf8mb4
DEFAULT_COLLATION默认校验规则latin1_swedish_ciutf8mb4_general_ci
WITH_EXTRA_CHARSETS扩展字符集allall
ENABLED_LOCAL_INFILE是否启用本地加载外部数据文件功能OFF建议开启
  • 存储引擎相关配置项
说明:
以下选项值均为布尔值,0代表不编译到服务器中,1代表编译,建议都静态编译到服务器中。
其他的存储引擎可以根据实际需求在安装时通过WITH_xxxx_STORAGE_ENGINE=1的方式编译到服务器中。

WITH_INNOBASE_STORAGE_ENGINE=1
将InnoDB存储引擎插件构建为静态模块编译到服务器中建议编译到服务器中。WITH_PARTITION_STORAGE_ENGINE=1
是否支持分区
WITH_FEDERATED_STORAGE_ENGINE
本地数据库是否可以访问远程mysql数据
WITH_BLACKHOLE_STORAGE_ENGINE
黑洞存储引擎,接收数据,但不存储,直接丢弃
WITH_MYISAM_STORAGE_ENGINE=1
将MYISAM存储引擎静态编译到服务器中

三、易忘点

1、安装

1,排陷阱:卸载系统自带数据库:
	#yum remove mariadb-libs
		或删除/etc/my.conf
2,改权限:安装目录属主属组更改为mysql
	#chown -R mysql:mysql /usr/local/mysql
3,初始化:用mysql用户身份运行初始化脚本
	#scripts/mysql_install_db --user=mysql

四、报错记录

1,套接字文件报错
[root@vm_5_el7 mysql-5.6.31]# mysql31
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql31.sock' (2)
无法通过套接字'/tmp/mysql2连接到本地MySQL服务器。袜子”(2)
解决:
	1,端口冲突
	2,如果可以启动,查看/tmp/中是否有m7ysql*.sock的文件生成。是否与my.cnf 中指定的路径一致
	3,检查/etc/my.cnf是否存在,mariadb-libs是否在干扰
	4,错误日志无法创建,需要手动创建

2,服务启动报错
[root@VM_0_2_centos mysql1]# service mysql1 start
Starting MySQL.... ERROR! The server quit without updating PID file (/data/mysql1/data/VM_0_2_centos.pid).
1,目录权限不足
[root@VM_0_2_centos mysql1]# chown -R mysql. /data/mysql1/
2,没有初始化数据库
[root@VM_0_2_centos mysql1]# ./scripts/mysql_install_db --user=mysql