mysql一直没空安装,因为很少会自己安装,都是使用现成的,百度也有很多评论说安装失败,所以就自己记录一下,说不定哪天自己又用到了,如果各位觉得哪里不好或者不对的地方,请帮忙提出来,一起进步呀!!!
1.首先查询服务器是否有自带的数据库
rpm -qa | grep mysql
(注意大小写,如果mysql 不行就换MySQL)
执行完命令发现有的话将其卸载,如果没有的话直接就可以安装,不需要卸载这个步骤了
rpm –e mysql-*
卸载后/var/lib/mysql中的数据及/etc/my.cnf不会删除,如果确定没用后就手工删除
rm -f /etc/my.cnf
rm -rf /var/lib/mysql
查看是否还有mysql服务
netstat -nat
执行到这里就差不多了 ,可以重新执行rpm -qa | grep mysql 是否还存在
2.下载mysql的安装文件
下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads
然后将下载好的放到自己想要存放的服务器文件夹中
3.解压
tar -zxvf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz
4.创建mysql用户组和用户并修改权限
groupadd mysql
useradd -r -g mysql mysql
5.创建数据目录并赋予权限
mkdir -p /data/mysql #创建目录
chown mysql:mysql -R /data/mysql #赋予权限
6.配置my.cnf文件夹
vim /etc/my.cnf
执行完后点击A或者 i 进入编辑模式
配置的文件夹内容 :
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/home/mysql #Mysql解压后存放的目录,自己记得修改
datadir=/data/mysql #创建的目录
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true
修改完毕后按ESC退出并 :wq
进行保存
7.初始化数据库
进入mysql的bin
cd /home/mysql-5.7.30-linux-glibc2.12-x86_64/bin/
初始化
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
查看密码 :
cat /data/mysql/mysql.err
8.启动mysql,并更改root 密码
先将mysql.server放置到/etc/init.d/mysql中
cp /home/mysql-5.7.30-linux-glibc2.12-x86_64/support-files/mysql.server /etc/init.d/mysql
启动
service mysql start
启动完成后执行以下命令查看是否成功
ps -ef|grep mysql
到了这里的话就已经安装成功了
以下是修改密码
首先登录mysql,前面的那个是随机生成的。(进入到bin目录)
./mysql -u root -p
接着执行下面三步操作,然后重新登录
SET PASSWORD = PASSWORD('root');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;
到这里就修改完成了,如果说使用远程连接
报错如下 :
1130-host192.168.75.1'is not allowed to connect to this MYSQL server
那么就执行,在执行的时候必须要登录mysql
use mysql #访问mysql库
update user set host = '%' where user = 'root'; #使root能再任何host访问
FLUSH PRIVILEGES; #刷新
这个时候就可以连接成功了.
如果出现
2003 can't connect to MySQL server on ip(10060)
这个问题很有可能是防火墙的问题,执行以下命令
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '数据库连接密码' WITH GRANT OPTION;
执行完如果还没有成功的话,登录服务器配置3306端口
到这里的话问题就解决可以连接了