MySQL 在linux上的部署全流程

420 阅读4分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第7天,点击查看活动详情

MySQL部署:

下载链接:downloads.mysql.com/archives/co…

百度网盘链接:pan.baidu.com/s/1Rh00kYKM…

提取码:1024

1.版本选择

目前mysql的版本用的最多的还是5.7,当然5.6也还有用的,但是相对而言就少太多了,最常用的还得是5.7版本。
新版本8.*的话,可以自己装着用,但是公司里一般不会用,毕竟不知道有啥新的问题。

2.部署

方式也有很多,我们选择的事是比较常见的rpm包【yum】部署。

image.png

3.rpm包 【yum】部署:

1.上传并解压

这里的命令就和当前路径一起复制进来,方便理解路径。

rz 

#注:上传对应安装包

tar -xvf mysql-5.7.9-1.el7.x86_64.rpm-bundle.tar -C ../app/mysql

记得在app创建这个mysql文件夹

2.安装mysql

1.直接安装报错,需要卸载mariadb

  • 1.查询有没有mariadb-libs,有可能不是这个问题。
rpm -qa | grep mariadb-libs
  • 2.卸载mariadb-libs
rpm -e --nodeps mariadb-libs

2.继续安装mysql

进入app下的mysql目录

yum install -y libaio  #[mysql 额外依赖包]
rpm -ivh mysql-community-common-5.7.9-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.9-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.9-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.9-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.9-1.el7.x86_64.rpm

然后就安装成功了。因为这个是之前记得笔记,就没有截图了。

补上截图。 image.png

3.查看mysql配置

vim /etc/my.cnf

可以看到这句: log-error=/var/log/mysqld.log 这个是mysql运行日志,一会使用tail -f 获取初始化用户的临时密码

4.启动mysql

1.初始化mysql

创建一个用户名是root的用户

mysqld  --initialize --user=root

查看日志:

tail -f /var/log/mysqld.log

image.png

看到这一行

2022-09-12T17:39:39.023503Z 1 [Note] A temporary password is generated for root@localhost: LV!uOljYH1nL 懂了吧=> 临时密码 LV!uOljYH1nL

当然如果你之前安装过别的版本的,然后再安装会报错,

报错信息,原来安装的其他版本的mysql没卸载干净

[root@dave mysql]# mysqld  --initialize --user=mysql
2022-09-12T17:07:27.888558Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2022-09-12T17:07:27.889987Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting.
2022-09-12T17:07:27.890013Z 0 [ERROR] Aborting

解决方案:

rm -rf  /var/lib/mysql/

2.启动mysql 服务

rS(ad&8D55rr 注意:【有特殊符号记得加反引号\ 如:rS\(ad\&8D55rr】 下面就可以正式启动了 下面是 启动,关闭,重启,查看mysql的语句。

systemctl {start|stop|restart|status} mysqld\

所以,开始启动:

systemctl start mysqld

image.png 华为云如果报这个错,可以参考这篇文章。(2条消息) MySQL 启动报错:Job for mysqld.service failed because the control process exited with error code._Shockang的博客-CSDN博客_job for mysql.service failed because the control p 查看进程,可以看到的哦

ps -ef |grep mysqld
            mysql     2526     1  1 01:13 ?        00:00:00 /usr/sbin/mysqld --daemonize
            root      2555  2273  0 01:14 pts/0    00:00:00 grep --color=auto mysqld

看看,mysql在linux中的端口

netstat -nlp | grep 2526
    tcp6       0      0 :::3306                 :::*                    LISTEN      2526/mysqld         
    unix  2      [ ACC ]     STREAM     LISTENING     24921    2526/mysqld          /var/lib/mysql/mysql.sock

可以看到mysql 默认对外服务的端口 port: 3306 ,是3306

3.登录mysql client

mysql -uroot -pLV\!uOljYH1nL

就可以看到登进去了,mysql >这样的命令行

image.png

4.修改mysql root用户密码

我们肯定不能一直用那个随机的密码,所以,要改密码

mysql> use mysql
mysql> set password for root@localhost = password('123456');  

mysql> update user set Password=PASSWORD("123456") where user='root';

如果出现这样的提醒: image.png

可以用这个语句

ALTER USER USER() IDENTIFIED BY '123456';

MySQL版本5.7.6版本以前用户可以使用如下命令:

SET PASSWORD = PASSWORD('123456'); 

5.root用户 允许任意ip连接

现在的mysql只有localhost能访问,这肯定对于实际生产是不行的,所以,我们要改一下,如下:

update mysql.user set host='%' where user='root';

6.刷新权限

上面改完什么都要记得这个,不然可能不生效.

flush privileges;

5.远程连接

下面可以通过dbvear[推荐]等远程连接数据库的软件连接了,

记住自己linux的ip,port,还要记得mysql的用户密码就可以连接了。

image.png

个人总结

Mysql因为开源,免费的特点,应该算是最常用的关系型数据库了,这个在哪里工作都是需要的,所以记录下自己部署linux所需要的命令和需要注意的问题。