添加 mysql 用户(若存在,则跳过此步骤)
/usr/sbin/useradd -s /sbin/nologin mysql
创建数据库目录:
mkdir -p /data/mysql/data
chown -R mysql:mysql /data/mysql
编译 mysql 所需的程序或文件:
yum install gcc gcc-c++ cmake ncurses-devel bison
下载 mysql 源码包
cd /usr/local
# wget http://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.16.tar.gz
# wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.23.tar.gz
wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.27.tar.gz
解压源码到当前目录
tar -zxvf mysql-5.7.27.tar.gz
设置安装参数
# 切换到 mysql 目录
cd mysql-5.7.27
# 设置参数
cmake -DMYSQL_USER=mysql -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.7.27 -DINSTALL_DATADIR=/data/mysql/data -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1
编译 mysql
make
make install
设置参数文件
chown -R mysql:mysql /usr/local/mysql-5.7.27
cp /usr/local/mysql-5.7.27/support-files/my-default.cnf /etc/my.cnf
cp /usr/local/mysql-5.7.27/support-files/mysql.server /etc/init.d/mysqld
chmod a+x /etc/init.d/mysqld
开机启动
chkconfig --level 345 mysqld on
设置环境变量
echo "export PATH=/usr/local/mysql-5.7.27/bin/:$PATH" >> /etc/profile
source /etc/profile
# 查看是否写进了 /etc/profile 文件
cat /etc/profile
设置软链接
/usr/local/mysql-5.7.27/scripts/mysql_install_db --user=mysql --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql-5.7.27 --datadir=/data/mysql/data
# 错误提示1:-bash: /usr/local/mysql-5.7.27/scripts/mysql_install_db: Permission denied
# 解决,提供执行权限创建目录
chmod a+x /usr/local/mysql-5.7.27/scripts/mysql_install_db
# 错误提示2:FATAL ERROR: please install the following Perl modules before executing /usr/local/mysql-8.0.16/scripts/mysql_install_db
# 解决,安装 autoconf 库
yum -y install autoconf
在 /etc/my.cnf 配置文件中写入参数
vim /etc/my.cnf
# 添加以下内容:
[mysqld]
basedir=/usr/local/mysql-5.7.27
datadir=/data/mysql/data
port=3306
重启 mysqld
service mysqld restart
查看数据库是否启动正常
ps aux | grep mysql
设置数据库管理员的登录密码
/usr/local/mysql-5.7.27/bin/mysqladmin -u root password '123456'
进入 mysql 数据库
mysql -uroot -p123456
# 使用 SQL 语句,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从 ”localhost” 改称 '%'
# 选择 mysql 库
use mysql;
# 查看mysql库中的 user 表的 host 值(即可进行连接访问的主机/IP名称)
select host from user where user='root';
# 修改 host 值(以通配符 "%" 的内容增加主机/IP地址)
update user set host = '%' where user ='root';
# 修改数据库的 root 用户密码
update user set password=password("123456") where user="root";
# 修改为支持本机登录
UPDATE `mysql`.`user` SET password=password("123456"), user='root' WHERE host='localhost';
# 刷新 MySQL 的系统权限相关表
flush privileges;
# 重新查看 user 表是否有修改
select host from user where user='root';
# 退出数据库
exit
# 重启数据库
service mysqld restart