CentOS7安装mysql5.7.16

本文详细介绍了MySQL5.7版本的安装步骤,包括解压安装包、创建用户组、初始化数据库、设置远程访问权限等关键环节,并解决了可能出现的异常情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 解压mysql安装包

去mysql官网下载mysql-5.7.16-linux-glibc2.5-x86_64.tar 上传到/home/mysql

msyql>   cp  /home/mysql/mysql-5.7.16-linux-glibc2.5-x86_64.tar  /usr/java   复制到 /usr/java文件夹下

[root@iZwz91nfqrmmcjz3ax4vqvZ mysql]# cd /usr/java

[root@iZwz91nfqrmmcjz3ax4vqvZ java]# tar xvf mysql-5.7.16-linux-glibc2.5-x86_64.tar  解压
mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz
mysql-test-5.7.16-linux-glibc2.5-x86_64.tar.gz
[root@iZwz91nfqrmmcjz3ax4vqvZ java]# ls
mysql-5.7.16-linux-glibc2.5-x86_64.tar     mysql-test-5.7.16-linux-glibc2.5-x86_64.tar.gz
mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz
[root@iZwz91nfqrmmcjz3ax4vqvZ java]#  tar -zxvf  mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz  解压

[root@iZwz91nfqrmmcjz3ax4vqvZ java]# mv mysql-5.7.16-linux-glibc2.5-x86_64 mysql 重命名

2.检查mysql组和用户是否存在,如无创建。

创建mysql组,账户,设置mysql不能登录(防止别人利用mysql账号登录主机)

groupadd mysql
useradd -g mysql mysql

usermod -s /bin/false mysql

3.安装和初始化数据库

[root@iZwz91nfqrmmcjz3ax4vqvZ java]#   cd mysql
[root@iZwz91nfqrmmcjz3ax4vqvZ mysql]# mkdir data
[root@iZwz91nfqrmmcjz3ax4vqvZ mysql]# cd bin
[root@iZwz91nfqrmmcjz3ax4vqvZ bin]# ./mysql_install_db --user=mysql --basedir=/usr/java/mysql --datadir=/usr/java/mysql/data
2016-12-30 17:18:22 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize
2016-12-30 17:18:33 [WARNING] The bootstrap log isn't empty:
2016-12-30 17:18:33 [WARNING] 2016-12-30T09:18:24.809318Z 0 [Warning] --bootstrap is deprecated. Please consider using --initialize instead
[root@iZwz91nfqrmmcjz3ax4vqvZ mysql]# cp -a ./support-files/my-default.cnf /etc/my.cnf
cp: overwrite ‘/etc/my.cnf’? yes
[root@iZwz91nfqrmmcjz3ax4vqvZ mysql]# cp -a ./support-files/mysql.server /etc/init.d/mysqld
[root@iZwz91nfqrmmcjz3ax4vqvZ mysql]# cd bin/
[root@iZwz91nfqrmmcjz3ax4vqvZ bin]# ./mysqld_safe --user=mysql --basedir=/usr/java/mysql --datadir=/usr/java/mysql/data &

到/etc目录下配置my.cnf
shell> cd /etc/
shell> vi my.cnf #修改或添加以下内容 
basedir=/usr/local/mysql 
datadir=/usr/local/mysql/data
port = 3306 
socket=/tmp/mysql.sock 

shell> vi /etc/profile  #配置环境变量 添加如下内容 
export MYSQL_HOME="/usr/java/mysql" 
export PATH="$PATH:$MYSQL_HOME/bin"
shell> source  /etc/profile  #使配置及时生效
[root@iZwz91nfqrmmcjz3ax4vqvZ ~]# cd /usr/local
[root@iZwz91nfqrmmcjz3ax4vqvZ local]# ln -s /usr/java/mysql mysql
[root@iZwz91nfqrmmcjz3ax4vqvZ ~]# chkconfig mysqld on 设置开机启动
[root@iZwz91nfqrmmcjz3ax4vqvZ ~]# chmod 755 /etc/init.d/mysqld   修改mysqld执行权限
[root@iZwz91nfqrmmcjz3ax4vqvZ ~]# service mysqld start  启动mysql
Starting MySQL.[  OK  ]
a) 开启防火墙mysql 3306端口的外部访问 CentOS升级到7之后,使用firewalld代替了原来的iptables。下面记录如何使用firewalld开放Linux端口 
shell>  firewall-cmd --zone=public --add-port=3306/tcp --permanent
shell>  firewall-cmd --reload  #重启防火墙


4.初始化密码

mysql5.7会生成一个初始化密码,而在之前的版本首次登陆不需要登录。


[root@iZwz91nfqrmmcjz3ax4vqvZ bin]# cat /root/.mysql_secret
# Password set for user 'root@localhost' at 2016-12-30 17:18:22 
xh<Mwwa+ZIXi
[root@iZwz91nfqrmmcjz3ax4vqvZ bin]#  ./mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.16


Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.


Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql>SET PASSWORD = PASSWORD('123456');
Query OK,0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;
Query OK,0 rows affected (0.00 sec)



5.添加远程访问权限

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A


Database changed
mysql> update user set host = '%' where user = 'root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0


mysql> select host,user from user;
+-----------+-----------+
| host      | user      |
+-----------+-----------+
| %         | root      |
| localhost | mysql.sys |
+-----------+-----------+
2 rows in set (0.00 sec)
mysql> quit;   退出mysql;


//重启生效
[root@iZwz91nfqrmmcjz3ax4vqvZ bin]# service mysqld restart


可能碰到异常
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 异常

先把mysql关闭
用mysqld_safe --user=mysql --skip-grant-tables --skip-networking启动mysql 然后进去给root把密码加上
mysql -u root mysql 进入
mysql> UPDATE user SET password=PASSWORD("new password") WHERE user='username';(5.7之前用此方法)

mysql> UPDATE user SET authentication_string=PASSWORD("new password") WHERE user='username';(5.7之后用此方法)
mysql> FLUSH PRIVILEGES;    //刷新系统权限表
mysql> quit;

杀死mysql,重启mysql
登录mysql



CentOS 7 离线安装 MySQL 5.7.16 的步骤如下: 1. **准备工作**: - 下载MySQL 5.7.16的tarball文件,通常可以从MySQL官网下载历史版本:https://dev.mysql.com/downloads/mysql/5.7.html - 将下载的 `.tar.gz` 文件解压到一个离线的目录,例如 `/media/offline/installation` 2. **创建必要的配置文件**: - 进入解压后的目录,运行 `cd mysql-5.7.16` - 使用文本编辑器创建 `my.cnf` 配置文件,配置数据库的通用选项,如存储路径、字符集等。 ```bash cp support-files/my-medium.cnf my.cnf ``` 指定合适的值替换配置中的 `datadir`, `socket`, `innodb_data_home_dir` 等。 3. **初始化数据库**: - 运行 `scripts/mysql_install_db --defaults-file=my.cnf --basedir=$PWD --datadir=/path/to/data_directory` 来初始化数据库结构。这里 `/path/to/data_directory` 应替换为你在 `my.cnf` 中指定的实际数据存储位置。 4. **制作自定义脚本**: - 编辑 `support-files/mysql.server` 文件,将其内容保存为一个单独的启动脚本,比如 `mysqld_safe.sh`,以便在启动时使用配置文件。 5. **构建二进制包**: - 进入 `sql-bench` 目录,然后执行 `make install`。这会生成一个可执行的 `mysqld` 文件。 6. **复制到系统目录并设置权限**: - 将 `bin/mysqld_safe.sh` 和 `libexec/mysqld` 复制到系统的合适位置(通常是 `/usr/local/sbin` 和 `/usr/local/libexec`),并给它们适当的权限。 7. **设置开机启动**: - 可以将 `mysqld_safe.sh` 加入到 CentOS 的启动脚本中,例如 `/etc/rc.d/init.d` 或者使用 systemd(如果系统支持)。 8. **安全初始化**: - 安装完成后,首次登录MySQL时需要设置root用户的密码。通过运行 `bin/mysql_secure_installation` 命令完成这个过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值