Centos7下安装mysql5.7.26
-
下载mysql安装包
wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
-
查看是否已经安装了mysql
rpm -qa | grep mysql # 无输出则说明没有安装,有输出则删除
-
解压安装包到/usr/local目录下
tar -zxvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz # 将解压后的文件夹重新命名 mv mysql-5.7.26-linux-glibc2.12-x86_64/ mysql
-
创建用户组和用户并修改权限
groupadd mysql useradd -r -g mysql mysql chown mysql:mysql -R /usr/local/mysql # 修改权限
-
创建mysql数据目录
cd / # 进入根目录 mkdir -p data # 创建数据文件夹 cd data/ # 进入数据文件夹 mkdir -p mysql/ # 创建mysql文件夹 chown mysql:mysql -R /data/mysql # 修改权限
-
卸载Centos7自带的Maridb数据库
rpm -qa | grep mariadb # 搜索相关的软件包 rpm -e --nodeps mariadb* # 搜索出来的软件包进行卸载
yum -y remove mari* # 删除yum中有关Maridb的相关软件包
-
修改配置
vi /etc/my.cnf # 按i进入编辑模式,编辑以下内容
[mysql] # 修改默认字符集 default-character-set=utf8 # 绑定客户端socket文件路径 socket=/usr/local/mysql/mysql.sockt [mysqld] socket=/usr/local/mysql/mysql.sockt log_error=/data/mysql/error.log pid_file=/data/mysql/mysql.pid basedir=/usr/local/mysql datadir=/data/mysql port = 3306 # 忽略大小写 lower_case_table_names=1 # 服务端默认字符集 character-set-server=utf8 # 最大连接数 max_connections=2000 # 创建数据库时默认数据引擎 default-storage-engine=INNODB explicit_defaults_for_timestamp=true skip-grant-tables # 用于第一次登陆mysql,更改密码后去除
-
初始化mysql
chown 777 /etc/my.cnf # 修改权限 rpm -qa | grep libaio # 查看是否安装libaio yum install libaio # 没有则进行安装 /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql # mysql初始化 vi /etc/profile # 配置环境变量 export PATH=$PATH:/usr/local/mysql/bin source /etc/profile
-
配置自启动和相关服务
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld chmod 777 /etc/init.d/mysqld chkconfig --add mysqld chkconfig --list # 显示服务列表,如果看到mysqld的服务,并且3,4,5都是”on/开启 “的话则成功 # 如果是“off/关闭”,则输入:chkconfig --level 345 mysqld on
-
启动mysql并更改密码
service mysqld start # 启动 service mysqld stop # 关闭 service mysqld restart # 重启 mysql -u root -p # 登录会跳过密码,因为配置了skip-grant-tables UPDATE mysql.user SET authentication_string=PASSWORD('新密码') where USER='root'; flush privileges; # 重置密码后执行 ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; flush privileges; # 设置任何ip都可以登陆 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION; flush privileges; # 之后进入/etc/my.cnf中将skip-grant-tables删除,重启mysql