开发环境(三)之Mysql的安装
下载地址
https://downloads.mysql.com/archives/community/
解压
tar -xvf mysql-5.7.26-linux-glibc2.12-x86_64.tar
再移动并重命名一下
mv mysql-5.7.26-linux-glibc2.12-x86_64 /usr/local/mysql
创建mysql用户组和用户并修改权限
groupadd mysql
useradd -r -g mysql mysql
创建数据目录并赋予权限
mkdir -p /data/mysql #创建目录
chown mysql:mysql -R /data/mysql #赋予权限
配置my.cnf
vim /etc/my.cnf
内容如下
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/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
#0:大小写敏感;1:大小写不敏感
lower_case_table_names=1
初始化数据库
进入mysql的bin目录
cd /usr/local/mysql/bin/
初始化
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
这一步可能会有一个错误需要注意
在centos 7.0 系统上安装 mysql 5.7.19的数据库,使用的是官网上编译好的安装包mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz,下载解压后,就可以使用需要安装。
但是解压后运行数据库初始化时出现了报错:
1 | /usr/local/mysql/bin/mysqld --initailize --user=mysql --basedir=/usr/local/mysql --datadir=/www/mysql/data |
运行该命令后出现的报错如下:
1 | error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory |
出现该问题首先检查该链接库文件有没有安装使用 命令进行核查
1 | rpm -qa|grep libaio |
运行该命令后发现系统中无该链接库文件
1 | 使用命令,yum install libaio-devel.x86_64 |
安装成功后,继续运行数据库的初始化命令,提示成功。
查看密码
cat /data/mysql/mysql.err
启动mysql,并更改root 密码
先将mysql.server放置到/etc/init.d/mysql中
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
启动!!!
service mysql start
ps -ef|grep mysql
到这里说明mysql已经安装成功了!!
注意:如果你安装的不是上面的位置去找这个文件,进去编辑
1 | vim /etc/init.d/mysql |
修改这里
下面修改密码
首先登录mysql,前面的那个是随机生成的。
./mysql -u root -p #bin目录下
要是进不去报:
修改 /etc/my.cnf 文件
vim /etc/my.cnf
加入信息
[mysqld]后面任意一行添加“skip-grant-tables”用来跳过密码验证的过程
保存并退出 :wq
2、重启Mysql服务
service mysql restart
重启之后输入 mysql 进入 mysql
重置密码
在之前的版本中,密码字段的字段名是 password,5.7版本改为了 authentication_string
update user set authentication_string = password('root'), password_expired = 'N', password_last_changed = now() where user = 'root';
mysql> use mysql;
mysql> update user set password=password("你的新密码") where user="root";
mysql> flush privileges;
mysql> quit;
远程连接:
linux下mysql开启远程访问权限及防火墙开放3306端口
1、登陆mysql
mysql -u root -p
2、设置访问地址
use mysql #访问mysql库
update user set host = '%' where user = 'root'; #使root能再任何host访问
如果你想允许用户root从ip为192.168.1.123的主机连接到mysql服务器,并使用root作为密码
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.123'IDENTIFIED BY 'password' WITH GRANT OPTION;
3、刷新
flush privileges;
防火墙开启
1、开启端口3306
firewall-cmd --zone=public --add-port=3306/tcp --permanent
2、重启防火墙
firewall-cmd --reload
查看已经开放的端口:
firewall-cmd --list-ports
MySQL设置开机自启
[root@wangpeng /]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld [root@wangpeng /]# chmod +x /etc/init.d/mysqld [root@wangpeng /]# chkconfig --add mysqld
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通