centos安装mysql 5.7版本.
作者:EelBarb
来源:CSDN
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
mysql安装
1、下载适宜版本的mysql安装包
下载地址:mysql安装
关于具体选用,有rpm和tar两种安装方案
rpm 包适用于 RedHat、CentOS、Fedora 等基于 RPM 包管理的 Linux 发行版。
如果您使用的是其他 Linux 发行版,或者不希望使用 RPM 包管理器进行安装,可以选择使用 tar 的方式进行安装。
这里我给出tar安装方式
点击download安装tar包,或者在服务器上使用wget下载 (mysql-5.7.38-el7-x86_64.tar.gz)
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.38-el7-x86_64.tar.gz
没看懂 这个 /archives/get/p/23/file 哪里来的,浏览器直接输入,可以直接下载。
2、卸载系统自带的mariadb
听说,安装mysql的话会和mariadb的文件冲突,所以需要先卸载掉mariadb
# 查看系统自带的Mariadb
rpm -qa|grep mariadb
# 卸载系统自带的Mariadb
# rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64
# 删除etc目录下的my.cnf ,一定要删掉,等下再重新建,之前我将就用这个文件,后面改配置各种不生效
rm /etc/my.cnf
3、创建mysql用户和组
//检查mysql 用户组是否存在
cat /etc/group | grep mysql
cat /etc/passwd |grep mysql
// 创建mysql 用户组和用户
groupadd mysql
useradd -r -g mysql mysql
4、解压并安装mysql
# 这里的安装目录是/usr/local
cd /usr/local
# 下载就不说了,把它丢到同目录即可,/usr/local,这里给的mysql-5.7.27的安装
# 解压
tar -zxvf mysql-5.7.27-el7-x86_64.tar.gz
# 改名
mv mysql-5.7.27-el7-x86_64 mysql
# 更改所属用户
chown -R mysql:mysql /usr/local/mysql
chmod -R 755 /usr/local/mysql
# 创建mysql数据、日志目录等
# 这里装在/data/mysql里
mkdir -p /data/mysql/{data,logs,tmp}
# 将这些目录赋给mysql用户
chown -R mysql.mysql /data/mysql/
mkdir -p /data/mysql/{data,logs,tmp}
这个不行就改成
mkdir /data/mysql/data
mkdir /data/mysql/logs
mkdir /data/mysql/tmp
5、修改或创建mysql配置文件
这里给出最基础的配置,如有需要,自行增加
vi /etc/my.cnf
[client]
port=3306
socket=/data/mysql/tmp/mysql.sock
[mysqld]
user=mysql
port=3306
basedir=/usr/local/mysql
datadir=/data/mysql/data
socket=/data/mysql/tmp/mysql.sock
pid-file=/data/mysql/tmp/mysqld.pid
tmpdir=/data/mysql/tmp
log-error=/data/mysql/logs/error.log
#设置大小写不敏感
lower_case_table_names=1
#解决mysqlsql_mode=only_full_group_by问题
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
这边不要有空格,可能会出现未知的错误。
6、配置环境
# 将mysql自带服务添加到系统服务中
cd /usr/local/mysql/support-files
cp mysql.server /etc/init.d/mysql
# 修改服务配置文件
vi /etc/init.d/mysql
# 添加以下内容
basedir=/usr/local/mysql
datadir=/data/mysql/data
# 注册开机启动服务
chkconfig --add mysql
chkconfig --list
# 添加环境变量
echo "PATH=$PATH:/usr/local/mysql/bin " >> /etc/profile
source /etc/profile
7、初始化数据库
# 初始化
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
# 初始化的时候可能会报 libaio.so.1 的问题
# 这是缺少环境导致
# 你可以用yum -y update来全量更新,或使用yum install -y libaio libaio-devel来解决这个问题
# 获取临时密码
more /data/mysql/logs/error.log |grep password
8、启动mysql服务并更改密码、配置远程连接
# 启动mysql服务
service mysql start
# 使用初始密码登录mysql服务 并修改密码
# 后面输入自己的刚才看到的临时密码
mysql -uroot -p
# 更改root密码为root
# 还有些版本的指令是:GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION
alter user 'root'@'localhost' identified by 'root';
# 允许远程连接mysql
use mysql;
update user set host='%' where user='root';
# 刷新权限
flush privileges;
这边可能出现mysql 不是对应命令,bash: mysql: command not found.
查看已存在的环境变量目录
echo $PATH
执行
ln -s /usr/local/mysql/bin/mysql /usr/bin/
/usr/local/mysql/bin/mysql 是mysql安装目录下的
9、完成
# 启动mysql服务
service mysql start
# 停止mysql服务
service mysql stop
# 重启mysql服务
service mysql restart
总结:
设置my.cnf的时候,里面不要有空格。直接用虚拟机编辑的话,无法直接复制,考虑使用xshell连接后进行操作。mysql命令不支持的时候,把mysql内容,添加到/usr/bin里面