Linux安装mysql

Linux安装mysqlLinux安装mysql

大家好,又见面了,我是你们的朋友全栈君。

  • 查看当前已安装服务
    [root@localhost]# rpm -qa|grep -i mysql
    MySQL-server-5.6.36-1.rhel5.x86_64
    qt-mysql-4.8.5-13.el7.x86_64
    akonadi-mysql-1.9.2-4.el7.x86_64
    perl-DBD-MySQL-4.023-5.el7.x86_64
  • 卸载mysql服务:
[root@localhost ]# yum remove mysql
[root@localhost ]# yum remove mysql-server

1、 安装包准备

通过XFTP远程传输到linux服务器上

mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz

2、 检查环境是否有mysql

命令:

# rpm -qa | grep mysql
# cat /etc/group | grep mysql

如果有则删除
命令:

# find / -name mysql|xargs rm -rf

3、 先安装必备库

命令:

# yum search libaio
# yum install libaio

4、 检查mysql组和用户是否存在,如无创建

命令:
先删除系统已存在的mysql用户和组
vi /etc/passwd 找到mysql用户 删除

# groupadd mysql
# useradd  -g mysql mysql	
# passwd mysql

连续输入两次密码完成用户创建

移动文件mv +文件目录+文件 移动的目标目录+文件名

# mv  /home/liunx/self/mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz 
/home/mysql/mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz

上传软件包mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz,解压TAR包,更改所属的组和用户
命令:

# cd /home/mysql/
# tar -zxvf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz 
# mv mysql-5.7.21-linux-glibc2.12-x86_64  /usr/local/mysql
# chown -R mysql:mysql /usr/local/mysql
# cd /usr/local/mysql/

5、 创建目录并授权

命令

# mkdir data mysql-files
# chmod 750 mysql-files
# chown -R mysql .
# chgrp -R mysql .

6、 初始化数据库

命令
# bin/mysqld --initialize --user=mysql

初始化数据库并生成临时密码 :koYyPqyL2y#t 需要记录下来
[注意]root@localhost生成临时密码,也就是root@localhost:后的字符串

7、 授予读写权限

命令:


# chown -R root .
# chown -R mysql data mysql-files

8、 添加到MySQL 启动脚本到系统服务

命令:

cp support-files/mysql.server /etc/init.d/mysql.server

9、 启动脚本

命令:

# service mysql.server start

可能会爆:

[root@localhost mysql]# service mysql.server start
Starting MySQL.2019-07-11T08:21:42.438137Z mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.
 ERROR! The server quit without updating PID file (/var/lib/mysql/localhost.localdomain.pid).

解决方法:

[root@localhost mysql]# mkdir /var/log/mariadb 
[root@localhost mysql]# touch /var/log/mariadb/mariadb.log
[root@localhost mysql]# chown -R mysql:mysql  /var/log/mariadb/
[root@localhost mysql]# service mysql.server start
Starting MySQL. SUCCESS!

启动时:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

解决:ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock 建立软连接

然后用mysql -h localhost -u root -p 启动

10、 数据库已经启动,现在登陆使用,这里用到上面的临时密码

    [root@localhost mysql]# mysql -uroot –p
    	Enter password: 
    	ERROR 1862 (HY000): Your password has expired. To log in you must change it using a client that supports expired passwords.

出现问题:ERROR 1862
翻译:错误1862(HY000):你的密码已经过期。登录必须改变它使用一个客户端,支持过期的密码。
Mysql5.7版本不会自动生成my.cnf文件,可以从已完成机器上拷贝注意修改所属目录

拷贝完成后
service mysql.server stop 停止数据库
service mysql.server start 启动数据库

原因:这是由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,当然会找不到命令,我们需要做的就是映射一个链接到/usr/bin目录下,相当于建立一个链接文件。首先得知道mysql命令或mysqladmin命令的完整路径,比如mysql的路径是:/usr/local/mysql/bin/mysql,我们则可以这样执行命令:

ln -s /usr/local/mysql/bin/mysql /usr/bin

解决方法:

  • 用忽略授权表的方法进入mysql
vi /etc/my.cnf
  [mysqld]
  skip-grant-tables
  :wq! #保存退出

重启mysql 就可以进入数据库了

  • 进入mysql,查看root用户的详细信息
    SQL:
 select * from mysql.user where user='root' \G
  • 把password_expired 改成不过期
    SQL:
use mysql
update user set password_expired='N' where user='root';
flush privileges;
	quit
  • 把 /etc/my.cnf 的 skip-grant-tables 这行注释掉

  • 重启服务
    命令

 	# service mysql.server restart

11、 重置密码

SQL:

use mysql;
ALTER USER 'root'@'localhost' identified by 'root';
或者
set password=password("root");
flush privileges;
	exit;

12、 使用新密码重新登陆

SQL:

mysql -uroot –proot

13、 添加远程连接

SQL:

use mysql;
update user set host = '%' where user ='root';
	flush privileges;

14、 关闭防火墙,然后使用远程工具连接

命令

# systemctl stop firewalld.service

15、 修改配置文件my.cnf

命令

vim /etc/my.cnf

添加下面数据

[mysql]
default-character-set=utf8
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8

退出重启

service mysql.server restart

16、 设置环境变量profile

vim /etc/profile
MYSQL=/usr/local/mysql
PATH=$MYSQL/bin:$PATH

export MYSQL
# 保存后别忘记使生效
source /etc/profile

17、 添加开机启动chkconfig

命令:

chmod 755 /etc/init.d/mysql
chkconfig --add mysql
chkconfig --level 345 mysql on

遇到问题—-Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’
使用命令 # find / -name “mysql.sock”

然后使用命令

# ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106552.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • springCloud学习笔记-no.2-eruka server和client

    springCloud学习笔记-no.2-eruka server和client1.转载于:https://www.cnblogs.com/andydlz/p/10283293.html

    2022年8月21日
    4
  • 水牛城66有看点不_acwing是什么

    水牛城66有看点不_acwing是什么给定一张 L 个点、P 条边的有向图,每个点都有一个权值 f[i],每条边都有一个权值 t[i]。求图中的一个环,使“环上各点的权值之和”除以“环上各边的权值之和”最大。输出这个最大值。注意:数据保证至少存在一个环。输入格式第一行包含两个整数 L 和 P。接下来 L 行每行一个整数,表示 f[i]。再接下来 P 行,每行三个整数 a,b,t[i],表示点 a 和 b 之间存在一条边,边的权值为 t[i]。输出格式输出一个数表示结果,保留两位小数。数据范围2≤L≤1000,2≤P≤50

    2022年8月9日
    4
  • 电脑usb android上网,让你的Android手机通过USB共享电脑上网

    电脑usb android上网,让你的Android手机通过USB共享电脑上网转贴:来自http://www.diypda.com/viewthread.php?tid=150277首先这不是一篇关于如何让你的Android手机通过USB共享电脑上网(这里不讨论这样做的必要性)的教程,所以很多细节上被省略了。没有图。我们知道,可以使用USB将HTCHero连接至PC,“连接类型”选择“Internet共享(假设你的手机移动网络可用并是打开的),然后你的电脑就会…

    2025年7月20日
    1
  • 缓存穿透,缓存击穿,缓存雪崩解决方案分析[通俗易懂]

    缓存穿透,缓存击穿,缓存雪崩解决方案分析[通俗易懂]前言设计一个缓存系统,不得不要考虑的问题就是:缓存穿透、缓存击穿与失效时的雪崩效应。缓存穿透缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个存在的数据每次请求都要到存储层去查询,失去了缓存的意义。在流量大时,可能DB就挂掉了,要是有人利用不存在的key频繁攻击我们的应用,这就是漏洞。解决方案

    2022年6月30日
    18
  • 企业级Nginx负载均衡与keepalived高可用实战视频教程「建议收藏」

    企业级Nginx负载均衡与keepalived高可用实战视频教程

    2022年2月15日
    40
  • Python 学生信息管理系统——文章中源码100%真实有效—–如何将类、初始化属性、模块、循环判断、静态方法等一系列知识点结合起来做一个项目「建议收藏」

    Python 学生信息管理系统——文章中源码100%真实有效—–如何将类、初始化属性、模块、循环判断、静态方法等一系列知识点结合起来做一个项目「建议收藏」这篇博客主要就是把学生管理系统进行源码分享,这段源码很好的将前面所学的全部串在一起。就我个人而言真的是非常有价值。就算你python前面的基础不好,学完这个系统你会有重获新生的感觉。本文适合需要用python完成课程大作业、python爱好者、python路上的学习者、初学python者、需要将python知识点串在一起的人、上进的人。manageSystem.py#TODO鸟欲高飞,必先展翅#TODO向前的人:Jhon

    2022年8月23日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号