作为一个初学者,第一次在CSDN写东西,此时的心情非常忐忑;但是呢,学会了东西就要分享出来,不停下来总结,时间用来摸鱼吗?以下是我对linux安装mysql方法的整理。
一、准备工作
1、查询MySQL是否安装软件包
rpm -aq | grep -i mysql
若每有安装包则跳过此步骤,之前存有安装包的则卸载
pm -ev mysql-community-server-8.0.20-1.el7.x86_64
rpm -ev mysql-community-client-8.0.20-1.el7.x86_64
rpm -ev mysql-community-libs-8.0.20-1.el7.x86_64 --nodeps(忽略依赖 --nodeps)
rpm -ev mysql-community-common-8.0.20-1.el7.x86_64
继续查询还有剩下没有删除的Mysql文件
find / -name "mysql"
此时我在查询发现此处有如下文件,注意:这两个文件不能进行删除(ps:这块我删除了之后发现之后配置初始化的时候没有my.cnf文件)
2、在/usr/local/mysql下安装mysql,注意安装有先后,有依赖关系
yum remove mysql-libs
清除之前安装过的所有依赖
二、安装mysql
1、关闭服务器的防火墙
systemctl stop firewalld.service
2、将mysql安装包上传到usr/local/下解压安装(此处我使用的事mysql-8.0.25版本)
(1)上传并解压mysql安装包
tar -xvf mysql-8.0.25-linux_64.tar.xz
(2)解压完成后,可以看到当前目录下多了一个解压文件,移动该文件到/usr/local/下,并将文件夹名称修改为mysql。(若已经存在mysql文件夹则将其改名为其他的)
(3)在/usr/local/mysql目录下创建data目录
mkdir /usr/local/mysql/data ----创建
chmod +777 /usr/local/mysql/data ----授予全部权限
3、添加mysql用户和组,并修改对应权限
groupadd mysql ---添加mysql组
useradd -g mysql mysql ---添加mysql用户
更改/usr/local/mysql 文件夹所有者属性和对应权限
chown -R mysql:mysql /usr/local/mysql/
chown -R mysql /usr/local/mysql/
chmod -R 755 /usr/local/mysql/
4、安装libaio 依赖包 如果已安装则跳过
yum install libaio
5、初始化安装命令
在/usr/local/mysql根目录下执行如下命令(ps mysqld 在数据库软件目录的bin下面)
bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize
其中:
basedir:数据库软件根目录,即解压后复制到的地方
datadir:数据库数据存储目录,这个就是前面mkdir data前面建立的
记住最后几个字符生成的临时数据库登录密码记住是冒号后面的都是密码(如下图)ed!m&HrUv2OS
6、修改配置文件
修改配置文件里面datadir、basedir等对应的目录。
配置文件里所有配置的文件位置必须真实存在,不存在的需要手动创建;并且赋予对应的文件权限。
vim /etc/my.cnf(windows系统则是 vim /etc/my.ini)
datadir----数据文件存放的目录 Basedir----mysql的根目录 socket----锁文件存放的路径
log-err----错误日志存放的路径 pid-file----进程号文件存放的路径
7、创建日志文件并赋予对应权限
mkdir mariadb ----创建mariadb文件夹
touch mariadb.log ----创建mariadb.log文件
设置日志文件所有者和对应权限
chown -R mysql:mysql /var/log/mariadb/
chown -R mysql /var/log/mariadb/
chmod -R 755 /var/log/mariadb/
8、将mysql加入服务并设置开机自启动
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
开机启动
chkconfig mysql on
9、配置环境变量
配置mysql的环境变量
vi /etc/profile
export MYSQL_HOME=/usr/local/mysql
export MYSQL_PATH=${MYSQL_HOME}/bin:${MYSQL_HOME}/lib
export PATH=$PATH:$MYSQL_PATH
10、启动Mysql服务并连接数据库
service mysql start
看到 Starting MySQL. SUCCESS! 代表启动成功。(success真帅)
三、连接数据库
1、连接数据库 使用临时密码登录
mysql -u root –p
2、修改密码为‘123’
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123';
3、创建数据库suc
create database ncw;
4、修改允许远程连接允许远程连接例如Navicat 等客户端登录
进入mysql: mysql -u root -p
运行mysql: use mysql;
查看用户表: SELECT `Host`,`User` FROM user;
更新用户表: UPDATE user SET Host = '%' WHERE User = 'root' ;
强制刷新权限:flush privileges;
关闭mysql: exit;
至此mysql在linux中的安装就完成了(我这是基于纯净的linux centos7系统)当整个过程很少有一翻风顺的时候,多多少少会遇到些许问题,其中
解决方法:
因为命令行直接查找的是/usr/local/bin下边的命令,需要我们把mysql的命令放到.bash_profile中。
vim ~/.bash_profile 添加:export PATH=$PATH:/usr/local/mysql/bin
保存退出即可,然后重启
source ~/.bash_profile
② mysql登录过程报如下错误
解决方法:
首先要知道原因:不能连接本地的mysql服务,因为找不到mysql.sock这个文件,所以要先查看有没有这个文件
find / -name mysql.sock
发现有结果,则只需要将查到的结果做一个软连接到/tmp目录下即可
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
或者
cd /usr/local/mysql
sudo ./support-files/mysql.server start
就可以登陆了
此问题是看这位大佬文章才得以解决,以下附上链接
亲测有效,解决Can 't connect to local MySQL server through socket '/tmp/mysql.sock '(2) ";_hjf161105的博客-CSDN博客