在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 连接