# 创建mysql用户组
$> groupadd mysql
# 创建mysql用户,不允许登录shell
$> useradd -r -g mysql -s /bin/false mysql
# 切换到安装目录
$> cd /usr/local
# 解压MySQL安装包
$> tar xvf /path/to/mysql-VERSION-OS.tar.xz
# 创建mysql软链接到解压目录
$> ln -s full-path-to-mysql-VERSION-OS mysql
# 进入mysql目录
$> cd mysql
# 创建数据文件目录
$> mkdir mysql-files
# 设置数据目录所有者为mysql用户和组
$> chown mysql:mysql mysql-files
# 设置数据目录权限为750(用户完全访问,组读执行,其他无权限)
$> chmod 750 mysql-files
# 初始化MySQL数据库
$> bin/mysqld --initialize --user=mysql
# 以mysql用户启动MySQL服务器
$> bin/mysqld_safe --user=mysql &
# 可选:将MySQL启动脚本复制到系统服务目录
$> cp support-files/mysql.server /etc/init.d/mysql.server
以上是Mysql官方文档关于手动安装的指南,但实际上是不够的,可能遇到问题。
编辑/etc/my.cnf
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/mysql-files
socket=/var/lib/mysql/mysql.sock
log-error=/usr/local/mysql/mysql-files/mysql.err
pid-file=/usr/local/mysql/mysql-files/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true
# 关闭MySQL的only_full_group_by模式
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
#忽略表名大小写
lower_case_table_names=1
初始化mysqld
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/mysql-files --user=mysql --initialize
初始化后查看日志获取初始密码
cat /usr/local/mysql/mysql-files/mysql.err
/etc/init.d 目录通常用于存放启动脚本,这些脚本用于管理系统服务的启动、停止和重启。
我们将启动脚本复制到此目录中:
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
在启动了mysqld后,运行启动脚本 service mysql start
添加环境变量export PATH=$PATH:/usr/local/mysql/bin