Mysql之Centos7下安装

倾然丶 夕夏残阳落幕 提交于 2020-12-12 20:41:48

下载mysql-xxx.tar.gz文件

 

将下载的文件通过ftp软件传到linux下/usr/local/software

 

解压并重命名

  cd /usr/local/software

  tar -zxvf mysql-xxx.tar.gz

  mv mysql-xxx mysql

 

centos7默认安装mariadb,它是mysql的一个分支,但要安装mysql需要先删除它

 

检测是否安装过mariadb 

   rpm -qa |grep mariadb

删除mariadb

   rpm -e 上面查出来的文件夹名

   rpm -e --nodeps 上面查出来的文件夹名   强制性

 

检测是否安装过mysql

   rpm -qa |grep mysql

删除mysql

   rpm -e 上面查出来的文件夹名

   rpm -e --nodeps 上面查出来的文件夹名   强制性

 

 

添加组和用户

groupadd mysql

useradd -g mysql mysql

 

 

设置用户权限

cd /usr/local/software/mysql

chown -R root .        把当前所有文件的拥有者改成root

chown -R mysql data    把data文件夹的拥有者改成mysql用户

 

设置组权限

cd /usr/local/software/mysql

chgrp -R mysql .     把当前所有文件设置成属于mysql组

 

 

 

修改mysql配置文件

cd /usr/local/software/mysql

cp support-files/my-default.cnf  /etc/my.cnf  ##注:如果/etc/my.cnf文件存在,则按y 回车覆盖。

vim /etc/my.cnf

 

 

 

[mysqld]中添加:

 

basedir = /usr/local/software/mysql

datadir = /usr/local/software/mysql/data

port = 3306

server_id = 1

 

 

初始化mysql

cd /usr/local/software/mysql

scripts/mysql_install_db --user=mysql --basedir=/usr/local/software/mysql --datadir=/usr/local/software/mysql/data 

 

 

出现错误:    

FATAL ERROR: please install the following Perl modules before executing 

Data::Dumper   

 

解决方法 :安装autoconf库

输入命令

yum -y install autoconf   //此包安装时会安装Data:Dumper模块

安装完成后再次执行上面初始化命令。

 

出现错误:

error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

解决方法:

yum -y install libaio

安装完成后再次执行上面初始化命令。

 

添加开机启动服务脚本

cd /usr/local/software/mysql

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

 

 

添加开机自启

systemctl enable mysqld

 

查看服务列表

chkconfig --list

 

查看服务状态 

systemctl status mysqld 

 

启动

systemctl start mysqld

 

停止

systemctl stop mysqld 

 

重启

systemctl restart mysqld

 

 

 

 

添加环境变量

vim /etc/profile

  

export PATH=/usr/local/software/mysql/bin:/usr/local/software/mysql/lib:$PATH  

 

让环境变量配置生效

source /etc/profile

 

 

 

登录mysql,修改密码

 

mysql -uroot -p

 

提示输入密码,默认密码为空,直接回车即可

 

select user,host,password from mysql.user;

update mysql.user set password = PASSWORD('123456') where user = 'root';

 

 

 

删除空用户(密码为空)

 

drop user ''@localhost; 

select user,host,password from mysql.user;

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

 

flush privileges;

 

如果改完密码后无法登录 ??

systemctl stop mysqld

mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

systemctl start mysqld

然后再登录试试

 

 

mysqladmin方式修改密码:

 

1.例如你的 root用户现在没有密码,你希望的密码修改为123456,那么命令是:

 

mysqladmin -u root password 123456

 

2.如果你的root现在有密码了(123456),那么修改密码为abcdef的命令是:

 

mysqladmin -u root -p password abcdef 

 

注意,命令回车后会问你旧密码,输入旧密码123456之后命令完成,密码修改成功。

 

3.如果你的root现在有密码了(123456),那么修改密码为abcdef的命令是:

 

mysqladmin -u root -p123456 password abcdef (注意-p 不要和后面的密码分开写,要写在一起,不然会出错)

 

 

 

 

 

开启远程连接

 

1.确定服务器上的防火墙没有阻止 3306 端口,否则需开启这个防火墙端口

 

查看开放端口

firewall-cmd --zone=public --list-ports

 

开放指定端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent

firewall-cmd --reload

 

2.登录mysql 创建用户zns密码为zns123456 设置权限即可

 

grant all privileges on *.* to 'zns'@'%' identified by 'zns123456' with grant option;

 

可能提示ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables opt

 

执行

flush privileges;

 

3 重启服务器

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!