×

mysql linux命令 linux Linux tar

CentOS 7离线安装MySQL 5.7

我的笔记 我的笔记 发表于2020-05-07 16:26:49 浏览3247 评论0

抢沙发发表评论

操作系统:CentOs 7.7 

MySQL版本:MySQL-5.7.25-x86_64


安装步骤: 

1. 查找并卸载 mariadb

# 查找当前系统下是否有mariadb 
[root@fyd ~]$ rpm -qa | grep mariadb 
# 卸载 mariadb-libs-5.5.64-1.el7.x86_64 
[root@fyd ~]$ rpm -e --nodeps mariadb-libs-5.5.64-1.el7.x86_64

2. 卸载原有的 mysql 相关

# 查找当前系统是否有mysql 
[root@fyd ~]$ rpm -qa | grep mysql 
# 删除配置⽂件 
[root@fyd ~]$ rm /etc/my.cnf 
# 查找是否存在mysql用户组和用户 
[root@fyd ~]$ cat /etc/group | grep mysql 
[root@fyd ~]$ cat /etc/passwd | grep mysql

3. 创建 mysql 用户和组

# 创建用户组
[root@fyd ~]$ groupadd mysql
# 创建用户
[root@fyd ~]$ useradd -g mysql mysql
# 修改用户密码
[root@fyd ~]$ passwd mysql
Changing password for user mysql.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

4. mysql 离线安装⽂件上传到服务器上

1下载地址及文件位置


image.png

2)上传到服务器的 /usr/local/ 目录下

image.png

5. 解压并建立软链接

# 注意:5的操作均在此⽬录下进⾏
[root@fyd ~]$ cd /usr/local/
# 解压
[root@fyd local]$ tar -zxvf mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz
# 创建软链接
[root@fyd local]$ ln -s mysql-5.7.25-linux-glibc2.12-x86_64 mysql
# 赋予mysql⽤户权限
[root@fyd local]$ chown -R mysql:mysql mysql/

6. 创建相关文件,赋予 mysql 用户权限

# 分别创建data tmp log文件夹
# 此目录可手动指定,不过要和mysql配置文件中相一致
[root@fyd ~]$ mkdir -p /home/fyd/mysql/{data,tmp,log}
# 赋权
[root@fyd ~]$ cd /home/fyd/
[root@fyd fyd]$ chown -R mysql:mysql mysql/

7. 创建并修改配置文件

# 这⾥选择将配置⽂件放在/etc下⾯,也可以放在mysql根⽬录下
[root@fyd ~]$ cd /etc
# 创建并编辑my.cnf
[root@fyd etc]$ vi my.cnf

给出配置文件作为参考:

[mysql]
default-character-set = utf8mb4
[mysqld]
# ---------------- Basic ----------------
server_id = 100
port = 3306
basedir = /usr/local/mysql
datadir = /home/fyd/mysql/data
socket = /tmp/mysql.sock
skip-host-cache
skip_name_resolve
lower_case_table_names = 1
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
init_connect = 'SET NAMES utf8mb4'
query_cache_size = 0
query_cache_type = 0
sql_mode = NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER
# ---------------- Connection/File/Table ----------------
max_connections = 10000
max_connect_errors = 20000
interactive_timeout = 1800
wait_timeout = 1800
lock_wait_timeout = 1800
max_allowed_packet = 1024M
# ---------------- log ----------------
log-bin=/home/fyd/mysql/log/mysql-bin
log_error = /home/fyd/mysql/log/error.log
binlog_format = ROW
expire_logs_days = 8

8. 安装 mysql (要先安装依赖)

# 安装相关依赖,否则会报错
[root@fyd ~]$ yum install libaio*
# 进到mysql /bin 目录
[root@fyd ~]$ cd /usr/local/mysql/bin/
# 初始化mysql,指定用户为mysql
# 此处如果日志中配置了log_error,则控制台不会打印数据
#[root@fyd bin]$ ./mysqld --initialize --user=mysql
[root@fyd bin]# mysql_install_db --datadir=/home/mysql/data --user=mysql --defaults-file=/etc/my.cnf

9. 设置开机启动

# 进⼊应⽤根⽬录
[root@fyd ~]$ cd /usr/local/mysql/
# 复制启动脚本到资源⽬录
[root@fyd mysql]$ cp ./support-files/mysql.server
/etc/rc.d/init.d/mysqld
# 增加mysqld服务控制脚本执⾏权限
[root@fyd mysql]$ chmod +x /etc/rc.d/init.d/mysqld
# 将mysqld服务加⼊到系统服务
[root@fyd mysql]$ chkconfig --add mysqld
# 检查mysqld服务是否已经⽣效
[root@fyd mysql]$ chkconfig --list mysqld

10. 切换⾄mysql 用户,设置环境变量

# 切换⾄mysql⽤户
[root@fyd ~]$ su - mysql
# 修改配置⽂件,增加export PATH=$PATH:/usr/local/mysql/bin
[mysql@fyd ~]$ vi .bash_profile
# 刷新配置⽂件使其⽴即⽣效
[mysql@fyd ~]$ source .bash_profile

11. 启动服务

# 仍然在mysql⽤户下,启动mysql(启动⽤start)
[mysql@fyd ~]$ service mysqld restart
# 重启的时候报警告
Shutting down MySQL..[ OK ]
rm: cannot remove '/var/lock/subsys/mysql': Permission denied
Starting MySQL.[ OK ]
# 切回root⽤户,赋权即即可
[mysql@fyd ~]$ su - root
[root@fyd ~]$ cd /var/lock/
[root@fyd lock]$ chown -R mysql:mysql subsys/
# 切回mysql重启,成功。
[mysql@fyd ~]$ service mysqld restart
Shutting down MySQL..[ OK ]
Starting MySQL.[ OK ]

12. 修改 mysql 默认密码并设置远程连接

-- 修改密码
set password for root@localhost=password("root");
flush privileges;
-- 远程连接
use mysql;
update user set host='%' where user='root';
flush privileges;


ps:我在用此方法同一台linux安装第二个mysql的时候,我把所有用户和程序名称都新加了一个mysql3307,这个必须把my.cnf方到第二个程序的basedir(/usr/local/mysql3307)下,命名为my.cnf

连接第二个mysql要使用

/usr/local/mysql3307/bin/mysql --socket=/var/lib/mysql3307/mysql.sock --port=3307 -uroot -p
我的笔记博客版权我的笔记博客版权

相关推荐