在Linux(Centos7)环境下安装MySQL 《非常详细》

安装MySQL

1、下载.tar.gz的安装包(mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz),并将安装包用ftp上传到服务器

MySQL安装包下载网址:https://downloads.mysql.com/archives/community/

注意:下载M有DSQL的版本是5.7的。根据自己电脑的规格,选择64位或32位的。

用ftp软件将tar.gz安装包上传到服务器 

 

2、检查是否安装mariadb,有则卸载

是否安装某软件:  rpm -qa |grep 软件名
卸载软件:       yum remove 完整软件名

 (在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB。)

 

3、解压文件,修改目录名方便配置

[root@XXX]# mkdir /opt/mysql     //新建目录
[root@XXX]#
tar -zxvf mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz -C /opt/mysql //解压文件,并将解压后的目录设为 /opt/mysql 。。。 [root@XXX]# cd /opt/mysql //切换到/opt/mysql目录下 [root@XXX]# ls mysql-5.7.31-linux-glibc2.12-x86_64 [root@XXX]# mv mysql-5.7.31-linux-glibc2.12-x86_64 mysql-5.7.31 //修改目录名为mysql-5.7.31 [root@XXX]# ls mysql-5.7.31

注解:

/opt : 这是给主机额外安装软件所摆放的目录。

 

4、在 /usr/local/ 目录下创建 /opt/mysql-5.7.31的软连接(软连接 相当于Window系统下的快捷方式) 

[root@XXX]# cd /usr/local  //切换目录
ls       //查看目录下的文件和目录
aegis  curl  games    lib    libexec   man ln -s /opt/mysql/mysql-5.7.31 /usr/local/mysql  //创建软连接
[root@XXX local]# ls
aegis  curl  games    lib    libexec   man      mysql  openssl  share
bin    etc   include  lib64  libiconv  mongodb  nginx  sbin     src

 

5、 添加 mysql 用户,修改mysql目录权限,并用此用户执行应用

[root@lushangg bin]# useradd -s /bin/false -M u_mysql   //添加账号 ,-s Shell文件 指定用户的登录Shell ,-m 使用者目录如不存在则自动建立
[root@lushangg bin]# groupadd g_mysql                   //添加用户组 
[root@lushangg bin]# chown -R u_mysql:g_mysql /opt/mysql/mysql-5.7.31     //chown将指定文件的拥有者改为指定的用户或组,-R 递归操作文件和目录

 

6、在 /etc/下创建my.cnf配置文件

# 组包含了mysqld 服务启动的参数,它涉及的方面很多,其中有MySQL的目录和文件,通信、网络、信息安全、内存管理、>优化、查询缓存区、还有MySQL日志设置等
[mysqld]
# binlog  配置
log-bin = /usr/local/mysql/logs/mysql-bin.log #logbin数据库的操作日志,如添删改等都会存储到binlog日志,通过logbin可以实现增量恢复
expire-logs-days = 14 #超过14天的binlog,mysql程序回自动删除
max-binlog-size = 500M #二进制日志文件的最大长度为500M(默认为1G),超过后会自动提供新的文件续上
server-id = 1 #表示本机的序列号为 1
basedir = /opt/mysql/mysql-5.7.31 # MySQL程序存放路径,常用于存放MySQL启动、配置文件、日志
datadir =/opt/mysql/mysql-5.7.31/data # MySQL数据存放文件路径(很重要)
socket = /usr/local/mysql/mysql.sock #用户在linux/Unix环境下客户端连接可以不通过TCP、Ip网络而直接使用unix socket连接 MySQL
user = u_mysql # mysql_safe 脚本使用MySQL运行用户
default-storage-engine = InnoDB # 默认存储引擎
character-set-server = utf8 # 数据库和数据库表的默认字符集。
lower_case_table_names = 1 # 实现MySQL不区分大小
explicit_defaults_for_timestamp = true #显示默认时间戳

[mysqld_safe]
log-error = /usr/local/mysql/mysql-error.log # 报错日志
pid-file = /usr/local/mysql/mysqld.pid # 父id 文件

[client]   # 客户端
socket = /usr/local/mysql/mysql.sock

[mysql]
default-character-set = utf8 # 客户端字符集 (控制 character_set_client、character_set_connection、character_set_results)
socket = /usr/local/mysql/mysql.sock

 

7、创建文件

[root@lushangg mysql]# mkdir /usr/local/mysql/logs       // 创建日志目录
[root@lushangg mysql]# chown u_mysql:g_mysql /usr/local/mysql/logs      //指定目录的拥有者
[root@lushangg mysql-5.7.31]# touch /opt/mysql/mysql-5.7.31/mysql-error.log     //创建错误日志文件
[root@lushangg mysql-5.7.31]# chown u_mysql:g_mysql /opt/mysql/mysql-5.7.31/mysql-error.log    //指定文件的拥有者

 

8、安装MySQL

[root@lushangg /]# cd /opt/mysql/mysql-5.7.31   //切换目录
[root@lushangg mysql-5.7.31]# bin/mysqld --initialize --user=u_mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

 

9、保存密码

2021-02-02T07:59:44.323226Z 1 [Note] A temporary password is generated for root@localhost: XXX

 

10、拷贝启动程序,将mysql 的启动程序拷贝到  /etc/init.d/目录下

[root@lushangg support-files]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

 

11、启动mysql服务

[root@lushangg data]# service mysqld start
Starting MySQL. SUCCESS!

 

12、配置环境变量

vim /etc/profile

最后一行追加
#mysql
export MYSQL_HOE =/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin
source /etc/profile

 

13、开机自启

vi /etc/rc.local

#追加一行
systemctl start mysqld.service

 

以上步骤参考网址:https://blog.csdn.net/weixin_40325516/article/details/109749046

 

14、重置密码,这里输入上面步骤9 中记录的密码

[root@lushangg mysql]# mysql -u root -p 
Enter password: XXX
mysql> set password =password('123456');  //设置密码
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> alter user 'root'@'localhost' password expire never;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;  //刷新
Query OK, 0 rows affected (0.00 sec)
mysql> show databases; //查看数据库

 

15、设置允许远程登陆

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.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

如果还不能连接mysql,重启mysql 即可。

service mysql restart

 

16、使用 Navicat 连接

 

 

 

 

posted @ 2021-02-02 11:05  codeing123  阅读(710)  评论(0编辑  收藏  举报