作为小白,linux学的不扎实,在这里仅是作为一次笔记,记录安装mysql安装时的坑,如果有人看到了,有什么解释问题,希望大家自己搜索学习,我也是东拼西凑的,也能告诉我一下。
命令:service mysqld start 启动mysql服务
命令:service mysqld stop 停止mysql服务
一.下载mysql5.7版本的数据库并上传到服务器
- 从mysql官网下载mysql5.7
地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads - 选择版本,我选的是Linux-Generic
- 使用xftp将文件上传到服务器,我自己上传的路径:/opt/download 下
二.卸载CentOs自带的Maridb数据库
在rpm中利用grep工具搜索有关mariadb的软件包
rpm -qa | grep mariadb
rpm是RedHat软件包管理工具
-qa 表示 query all
| 表示 将两个命令隔开,左边命令的输出就会作为右边命令的输入
grep 是一个文本搜索工具
删除搜索出来的软件包名
rpm -e 搜索出来的软件包名
rpm -e --nodeps 强制删除
删除yum中有关maridb的相关软件包
yum -y remove mari*
再使用命令 rpm -qa | grep mariadb 进行检查
三. 卸载删除的mysql数据库
如果之前用的是yum方法安装的mysql但出了问题想重新安装,建议删干净,以免后续出现什么问题(都是坑)
rpm -qa | grep mysql
yum remove mysql-*
在/目录下查找包含mysql的文件名,并逐一删除即可
find / -name mysql
rm -rf 搜索出来的文件名(例如 rm -rf /usr/local/mysql)
四. 安装mysql5.7
这里路径是/opt/DevSoftware/mysql下,要安其他位置自行修改路径
(1)解压文件
打开文件上传位置并查看文件列表
cd /opt/download
ls
将mysql-5.7.27-linux-glibc2.12-x86_64.tar文件复制到要安装的文件目录下
cp mysql-5.7.27-linux-glibc2.12-x86_64.tar /opt/Software
解压 .tar 文件
tar -xvf mysql-5.7.27-linux-glibc2.12-x86_64.tar
解压 .tar.gz 文件,不用解压mysql-test那个文件,等待解压结束
tar -zxvf mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz
将解压出来的mysql-5.7…文件重名为mysql
mv mysql-5.7.27-linux-glibc2.12-x86_64 mysql
(2)创建mysql组和用户
先执行1,2命令查看是否有对mysql进行用户分组,如果没有执行3,4命令
1 cat /etc/group | grep mysql
2 cat /etc/passwd | grep mysql
3 groupadd mysql
4 useradd -r -g mysql mysql
对创建的用户进行mysql文件的授权
chown -R mysql:mysql /opt/DevSoftware/mysql
(3)创建相关文件&授权文件&安装
创建data文件,并授权
mkdir /opt/DevSoftware/data
chown -R mysql:mysql data
chown 777 mysql/ 赋予最高权限(所有用户都可以使用)
修改mysql的配置文件,按i进入插入编辑模式,修改完毕按esc退出编辑模式,按shift+ ‘:’ 进入命令模式,输入wq保存并退出,具体vim的操作可以自行搜索学习
vim /etc/my.cnf
具体配置信息如下:
[mysql]
#修改默认字符集
default-character-set=utf8
#这个是绑定客户端socket文件路径,不然出错还要创建
socket=/opt/DevSoftware/mysql/mysql.sockt
[mysqld]
#用于后续修改密码时,如果随机密码不对,可以跳过密码验证登录的,修改完密码后再删掉。skip-grant-tables
socket=/opt/DevSoftware/mysql/mysql.sockt
log_error=/opt/DevSoftware/mysql/data/error.log
pid_file=/opt/DevSoftware/mysql/data/mysql.pid
basedir=/opt/DevSoftware/mysql
datadir=/opt/DevSoftware/mysql/data
port = 3306
#忽略大小写
lower_case_table_names=1
#服务端默认字符集
character-set-server=utf8
#最大连接数
max_connections=2000
#创建数据库时默认数据引擎
default-storage-engine=INNODB
explicit_defaults_for_timestamp=true
授权my.cnf权限
chown 777 /etc/my.cnf
检查是否有libaio库
rpm -qa|grep libaio
没有则安装
yum install libaio
进行安装,路径写mysql的文件路径,查看warning信息找到初始随机密码。
/opt/DevSoftware/mysql/bin/mysqld --initialize --user=mysql --basedir=/opt/DevSoftware/mysql --datadir=/opt/DevSoftware/mysql/data
(4)mysql环境变量&服务自启动相关配置
打开profile文件,进行环境变量配置
vi /etc/profile
在profile文件最后加入如下语句,并保存退出profile配置文件
export PATH=$PATH:/usr/database/mysql/bin
使配置文件生效
source /etc/profile
自启动相关配置
cp /opt/DevSoftware/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig --list
显示服务列表,如果看到mysqld的服务,并且3,4,5都是”on/开启 “的话则成功
如果是off/关闭,则键入:chkconfig --level 345 mysqld on 命令
启动&关闭&重启mysql服务的命令
service mysqld start
service mysqld stop
service mysqld restart
五.修改密码&释放权限
如果在初始化MySQL的时候,在my.cnf中进行了skip-grant-tables跳过密码验证登录的 设置,所以可以直接输入如下命令进行登录
mysql -u root
否者
mysql -u root -p
输入密码
修改密码
UPDATE mysql.user SET authentication_string=PASSWORD('新密码') where USER='root';
flush privileges;
重置密码后,一定执行以下语句
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
flush privileges;
设置授权任何IP地址都可以登录
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;
flush privileges;
退出mysql
quit;
退出后先停止mysql,再次进入 /etc/my.cnf文件将skip-grant-tables删除,然后重启mysql
六. 修改防火墙设置,使用Navicat连接数据库
查看防火墙开放的端口
firewall-cmd --list-ports
如果没有3306端口,是连接不上的,输入下面命令,使防火墙开放 3306端口(使用TCP协议的/永久开放的/公开的性质)
firewall-cmd --zone=public --add-port=3306/tcp --permanent
重启防火墙
firewall-cmd --reload
接下来就可以进行远程连接mysql数据库了。
如果说用的阿里云或者什么有安全组的管理,还得去网站的控制台去操作一下。