持续创作,加速成长!这是我参与「掘金日新计划 · 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】部署。
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
然后就安装成功了。因为这个是之前记得笔记,就没有截图了。
补上截图。
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
看到这一行
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
华为云如果报这个错,可以参考这篇文章。(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 >这样的命令行
4.修改mysql root用户密码
我们肯定不能一直用那个随机的密码,所以,要改密码
mysql> use mysql
mysql> set password for root@localhost = password('123456');
或
mysql> update user set Password=PASSWORD("123456") where user='root';
如果出现这样的提醒:
可以用这个语句
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的用户密码就可以连接了。
个人总结
Mysql因为开源,免费的特点,应该算是最常用的关系型数据库了,这个在哪里工作都是需要的,所以记录下自己部署linux所需要的命令和需要注意的问题。