Centos6.5安装mysql

内容纲要

给一台老的服务器安装MySQL,系统为centos6.5.由于6.5已经停止维护不能使用在线安装的方式实现,修改yum源也比较麻烦,所有采用手动下载安装包的方式。
1.获取mysql5.7的安装包并解压

# 获取压缩包 
wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz 
# 解压 
tar -zxvf mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz 
# 重命名 
mv mysql-5.7.35-linux-glibc2.12-x86_64 /usr/local/mysql
# 创建data目录
mkdir /usr/local/mysql/data

2.创建mysql用户和组
为了安全运行MySQL服务,建议为MySQL创建专用的用户和组:

# 添加用户组
groupadd mysql
# 添加用户
useradd -r -g mysql -s /bin/false mysql
# 授权
chown -R mysql:mysql /usr/local/mysql
- -useradd:用于创建和管理用户帐户的命令
- -r:创建一个系统用户
- -g mysql:将用户添加到名为 mysql 的组中
- -s /bin/false:将用户的登录shell设置为 /bin/false,这意味着用户不能直接登录到系统。
- mysql:要创建的用户名

3. 初始化mysql

# 进入bin目录初始化
cd /usr/local/mysql
bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
*注意:mysqld --initialize将生成一个临时的root密码,输出在终端上。请记下这个密码,以便首次登录。*

4. 配置mysql
创建MySQL的配置文件/etc/my.cnf

[mysqld]
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/mysqld.sock
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0 
max_connections=400 
innodb_file_per_table=1
lower_case_table_names=1
character_set_server=utf8mb4
[client]
socket=/usr/local/mysql/mysqld.sock
- datadir: 指定了MySQL数据库文件存储的位置。
- port: 指定了MySQL服务器监听的端口,默认为3306。
- sql_mode: 设置了MySQL的SQL模式,NO_ENGINE_SUBSTITUTION防止在指定的存储引擎不可用时使用默认引擎,STRICT_TRANS_TABLES在事务性表上强制应用严格的SQL模式。
- symbolic-links=0: 禁用符号链接,提高安全性。
- max_connections: 设置了MySQL服务器能接受的最大连接数。
- innodb_file_per_table: 启用此选项使InnoDB为每个表创建独立的文件,有助于数据库管理和优化磁盘空间使用。
- lower_case_table_names=1: 在Linux上,设置这个值为1使得表名存储为小写,这在跨平台使用数据库时很有用,但是要确保所有表名在SQL查询中使用的大小写与实际创建时的大小写一致。
- character_set_server=utf8mb4: 设置服务器的默认字符集为utf8mb4,utf8mb4是推荐的字符集,因为它支持更广泛的Unicode字符,包括表情符号。
- socket:设置服务器套接字文件

5. 启动mysql

# 
/usr/local/mysql/support-files/mysql.server start

6. 继续配置软连接,加入环境变量

  • 将mysql的命令加入系统环境
    # 加入后可以在任意目录使用mysql 命令
    # mysql 服务命令 用于启动停止mysql服务
    ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
    # mysql 连接服务,执行登陆、sql语句等
    ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
  • 修改mysql密码,可以使用mysqld --initialize输出的密码登陆也可以查找改密码
    # 查找密码
    grep 'temporary password' /var/log/mysqld.log
    # 登陆
    mysql -u root -p
    # 重启mysql服务跳过权限表
    service mysql stop
    # 或者
    systemctl stop mysql
    # 跳过权限表,可以任意身份登陆无需密码
    mysqld_safe --skip-grant-tables &
    mysql -u root
    # 重置密码
    FLUSH PRIVILEGES;
    ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
    exit;
    # 如果是跳过权限表则需要重启mysql服务退出该模式
    mysqladmin shutdown
    # 或者
    service mysql start

    使用新密码登陆即可。
    7. 开启mysql 远程访问

    • 在MySQL命令行中,更新root用户(或其他您想要从远程访问的用户)的权限,允许从任意主机连接。使用如下命令:
      GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '您的密码' WITH GRANT OPTION;

      这里使用’%’允许从任何主机连接。为了更好的安全性,可以将’%’替换为特定的IP地址或主机名。

    • 如果MySQL服务配置为仅监听本地接口,需要修改其配置文件(通常是my.cnf或mysqld.cnf),以便它监听可以从外部访问的网络接口。
      通常文件位于/etc/my.cnf,将bind-address值改为0.0.0.0以监听所有可用网络接口,或者设置为服务器的具体公网IP。

      bind-address = 0.0.0.0
    • 防火墙设置
      确保服务器的防火墙设置允许外部访问MySQL的默认端口(3306)
      对于ufw(在Ubuntu等系统中):

      ufw allow 3306

      对于firewalld(在CentOS等系统中):

      firewall-cmd --permanent --add-port=3306/tcp
      firewall-cmd --reload

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注