服务器配置Java开发环境(三)之安装mysql

下载地址

MySQL :: Download MySQL Community Server (Archived Versions)

解压

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,下载解压后,就可以使用需要安装。

但是解压后运行数据库初始化时出现了报错:

/usr/local/mysql/bin/mysqld --initailize --user=mysql --basedir=/usr/local/mysql --datadir=/www/mysql/data

运行该命令后出现的报错如下:

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

出现该问题首先检查该链接库文件有没有安装使用 命令进行核查

rpm -qa|grep libaio

运行该命令后发现系统中无该链接库文件

使用命令,
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已经安装成功了!!

注意:如果你安装的不是上面的位置去找这个文件,进去编辑

vim /etc/init.d/mysql

修改这里

下面修改密码

首先登录mysql,前面的那个是随机生成的。

./mysql -u root -p   #bin目录下

 要是进不去报:

 修改 /etc/my.cnf 文件

vim /etc/my.cnf

加入信息

[mysqld]后面任意一行添加“skip-grant-tables”用来跳过密码验证的过程

保存并退出    :wq

如果要是报ERROR 1820 (HY000): You must reset your password using ALTER USER statement before

解决办法
执行以下命令修改密码:

mysql> ALTER USER USER() IDENTIFIED BY 'wingkin45';#wingkin为密码

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、设置访问地址

#访问mysql库
use mysql

#使root能再任何host访问
update user set host = '%' where user = 'root';

如果你想允许用户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

优化:

扩展学习

错误:Host is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'

原因:

同一个ip在短时间内产生太多(超过mysql数据库max_connection_errors的最大值)中断的数据库连接而导致的阻塞;

解决方法:

1、提高允许的max_connection_errors数量(治标不治本):

① 进入Mysql数据库查看max_connection_errors: 

show variables like '%max_connection_errors%';

② 修改max_connection_errors的数量为1000: 

set global max_connect_errors = 1000;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值