一、解决登录数据库时的不方便问题
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_PORT | TCP/IP端口 | 3306 | 非默认端口 |
MYSQL_UNIX_ADDR | 套接字socket文件路径 | /tmp/mysql.sock | $basedir/ |
DEFAULT_CHARSET | 默认字符集 | latin1(拉丁文) | utf8mb4 |
DEFAULT_COLLATION | 默认校验规则 | latin1_swedish_ci | utf8mb4_general_ci |
WITH_EXTRA_CHARSETS | 扩展字符集 | all | all |
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