Linux下MySQL(5.7.17)的安装

 


一、MySQL的安装

说明:

  Linux下软件的安装通常有三种方式:二进制、rpm、yum三种方式。它们三个具体的区别参考博客:

https://www.cnblogs.com/LiuChunfu/p/8052890.html

MySQL的下载:

  因为我使用的是阿里云服务器,联网的,所以我直接在linux下进行下载,使用Windows的小伙伴也可以将mysql下载本地再上传到服务器上面

附上官网的下载链接通过命令行在服务器内下载软件包的连接:

官网:MySQL官网下载

服务器下载(联网):wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz

1、软件的卸载

1
rpm -qa | grep mysql

#若存在 mysql 安装文件,则会显示 mysql安装的版本信息

如:mysql-connector-odbc-5.2.5-6.el7.x86_64

#卸载已安装的MySQL,卸载mysql命令,如下:

1
rpm -e --nodeps mysql-connector-odbc-5.2.5-6.el7.x86_64

2、软件的解压重命名与移动

1
2
3
解压:tar -zxvf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
重命名:mv mysql-5.7.17-linux-glibc2.5-x86_64 mysql
移动:mv mysql /usr/local/

3、添加用户组、用户  

1
2
3
groupadd mysql
 
useradd -g mysql mysql

4、创建data目录

    #在/usr/local/mysql目录下创建data目录,数据库文件将会放在这里

1
2
3
cd /usr/local/mysql
 
mkdir data

5、更改mysql目录的用户和组为mysql

注意要是当前mysql目录:

1
2
3
[root@zhixi mysql]# pwd
/usr/local/mysql
[root@zhixi mysql]# chown -R mysql:mysql ./

6、配置my.cnf

在5.7.18开始官方不再二进制包中提供my-default.cnf文件,参考官网:https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html

我们这里在etc目录下新建一个my.cnf文件:

1
2
3
[root@zhixi etc]# pwd
/etc
[root@zhixi etc]# touch my.cnf

 my.cnf配置文件解释:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
my.cnf文件就是把在命令行上启动MySQL时后面的参数用cnf文件配置好,那么下载启动时就不再需要在命令上加如参数。
 
这个my.cnf文件可以是自定义位置,也可以使用如下默认的位置,只要放在默认位置,MySQL自动识别(通过deb或者APT源安装的,初始位置在下方列表):
在Unix和类Unix系统上读取选项文件
文件名                    目的
/etc/my.cnf              全局选项   
/etc/mysql/my.cnf        全局选项   
SYSCONFDIR/my.cnf        全局选项   
$MYSQL_HOME/my.cnf       服务器特定选项(仅限服务器)   
defaults-extra-file      指定的文件 --defaults-extra-file(如果有的话)   
~/.my.cnf                用户特定的选项   
~/.mylogin.cnf           用户特定的登录路径选项(仅限客户端)   
 
在上表中,~表示当前用户的主目录(的值 $HOME)。
首先它会找/etc/my.cnf 这个文件, 如果这个文件不存在,那么它接下来去找/etc/mysql/my.cnf这个文件,依此类推

my.cnf参数配置:具体的参考https://blog.csdn.net/bluerebel/article/details/89394066

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
[mysql]
  
# 设置mysql客户端默认字符集
default-character-set=utf8
  
socket=/tmp/mysql.sock
  
  
[mysqld]
  
#mysql无密码登陆
#skip-grant-tables
  
#禁用DNS解析
#skip-name-resolve
  
port=3306
socket=/tmp/mysql.sock
  
# 设置mysql的安装目录
basedir=/usr/local/mysql
  
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
  
# 允许最大连接数
max_connections=200
  
# 服务端使用的默认字符集
character-set-server=utf8
  
# 创建新表时将使用的默认存储引擿
default-storage-engine=INNODB
  
#lower_case_table_name=1
max_allowed_packet=16M

7、初始化mysql(进入到mysql的bin目录)  

#新版本中已经不再建议使用mysql_install_db来安装

1
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

#执行完后会输出:红色的就是初始密码

8、设置mysql为开机自启

1
2
3
4
5
6
7
8
9
10
11
12
#进入mysql安装目录,拷贝mysql.server到init.d目录下
 
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld
 
#添加服务
 
chkconfig --add mysqld
 
#查看是否添加成功
 
chkconfig --list mysqld

看到3、4、5状态为开或者为 on 则表示成功。如果是 关或者 off 则执行一下: chkconfig --level 345 mysqld on   

 

9、配置环境变量

1
2
3
4
5
6
7
8
9
10
11
vi /etc/profile
 
#添加如下内容
PATH=$PATH:/usr/local/mysql/bin
export PATH
 
#使配置生效
source /etc/profile
 
#查看一下配置是否生效
echo $PATH

10、初次登陆配置(修改密码)

#启动mysql:service mysqld start    

#登陆mysql,密码是上面提到的“wqYqOy)+o3yj”

1
mysql -u root -p密码

注意:我这里报错, 提示我找不到mysql.sock,可是我在my.cnf中已经配置过了,比较无语,找了篇博客还是没解决:https://blog.csdn.net/qw_xingzhe/article/details/78699157

 我的解决方案是,给mysql设置为无需密码进行登录,修改/etc/my.cnf配置文件即可:


 

然后使用命令:mysql,直接回车进入到mysql数据库中,进行修改密码:

  ps:如果这一步use mysql出现了错误:ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement

就手动修改密码吧,跟下面的修改密码也没太大区别,修改密码: ALTER USER USER() IDENTIFIED BY '123456'; 

复制代码
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 password=password('密码') where user='root' and host='localhost'; 
ERROR 1054 (42S22): Unknown column 'password' in 'field list'
mysql> update mysql.user set authentication_string=password('zhixi158') where user='root';
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 1

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
复制代码

修改密码出现了问题:

11、设置可以通过远程连接访问

参考我的这篇博客:https://www.cnblogs.com/zhangzhixi/p/14396345.html

 登录成功!!!

 测试一下远程访问:成功

posted @   Java小白的搬砖路  阅读(483)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?

喜欢请打赏

扫描二维码打赏

支付宝打赏

点击右上角即可分享
微信分享提示