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.gz4.创建mysql用户组和用户并修改权限
groupadd mysql useradd -r -g mysql mysql5.创建数据目录并赋予权限
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.err8.启动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端口
到这里的话问题就解决可以连接了