您的位置:首页 > 运维架构 > Linux

CentOS 7安装mysql5.7.17(mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz)

2020-06-06 20:36 591 查看

下载mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz安装包

下载地址:http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz

上传至 /home/datadase 目录下

进入 /usr/local 创建目录(-p 参数会递归创建文件夹)

[root@database local]# mkdir mysql/data -p


创建一个名为 mysql 的用户组

[root@database ~]# groupadd mysql
[root@database ~]# useradd -g mysql -d /usr/local/mysql mysql

进入 /home/datadase 解压文件

[root@database ~]# cd /home/datadase/
[root@database datadase]# tar -zxvf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz

进入解压好的 MySQL 源码包,移动到创建好的 MySQL 目录

[root@database datadase]# cd mysql-5.7.17-linux-glibc2.5-x86_64/
[root@database mysql-5.7.17-linux-glibc2.5-x86_64]# mv * /usr/local/mysql/

进入自己创建的 MySQL 目录,编译安装

[root@database mysql]# cd /usr/local/mysql/
[root@database mysql]# ./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize

记录好密码,root@localhost 后面就是 MySQL 自己生成的密码

配置 MySQL,进入 MySQL 的支持文件目录
会问你是否覆盖系统的 /etc/my.cnf 原文件,输入:y

[root@database mysql]# cd /usr/local/mysql/support-files
[root@database support-files]# cp my-default.cnf /etc/my.cnf

修改 MySQL 配置文件

[root@database support-files]# vim /etc/my.cnf

配置内容如下,注释掉最下面的 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[mysqld]

basedir = /usr/local/mysql
datadir = /usr/local/mysql/data

port = 3309
character_set_server=utf8
init_connect='SET NAMES utf8'
max_allowed_packet=20M
max_connections=1000
wait_timeout = 600
interactive_timeout = 600
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

[client]
default-character-set=utf8

#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

启动 MySQL 服务,在 /usr/local/mysql 目录下启动,出现 SUCCESS! 表示安装成功

[root@database support-files]# cd /usr/local/mysql/
[root@database mysql]# ./support-files/mysql.server start

配置 MySQL 服务开机自动启动,拷贝启动文件到 /etc/init.d/ 下并重命令为mysqld

[root@database mysql]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

增加 mysqld 文件执行权限

[root@database mysql]# chmod 755 /etc/init.d/mysqld		增加执行权限
[root@database mysql]# chkconfig --add mysqld			添加进自启动项列表中
[root@database mysql]# chkconfig mysqld on				设置开机启动

下面是 MySQL 操作

创建一个软链接

[root@database mysql]# ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql

登录 MySQL,使用刚刚记录的密码

[root@database mysql]# mysql -uroot -p


设置新密码,PASSWORD()里面填写你想要的密码,回车

mysql> SET PASSWORD = PASSWORD('123456');

MySQL 远程授权 all privileges 全部权限,GRANT 可以立刻生效,创建了一个账户名为 root , 密码 123456,% 表示所有的 ip都可以访问读取数据库的账号

mysql> grant all privileges on *.* to 'root'@'%' identified by '123456';
mysql> flush privileges;

创建只有 crud 权限的账号

mysql> grant select,insert,update,delete on *.* to 'user'@'%' identified by '123456';
mysql> flush privileges;

退出

mysql> quit;

到此MySQL已经搭建完毕,下面是一些常用命令

/etc/init.d/mysqld start				启动服务
/etc/init.d/mysqld restart				重启服务
/etc/init.d/mysqld stop					停止服务

登录
[root@database ~]# mysql -u root -p

显示全部的数据库
mysql> show databases;

使用某一个数据库
mysql> use databasename;

显示一个数据库的全部表
mysql> show tables;

退出
mysql> quit;
删除数据库和数据表
mysql> drop database 数据库名;
mysql> drop table 数据表名;

查看查询次数
mysql> SHOW STATUS LIKE 'com_select';

查看连接数(登录次数)
mysql> SHOW STATUS LIKE 'connections';

数据库运行时间
mysql> SHOW STATUS LIKE 'uptime';

查看慢查询次数
mysql> SHOW STATUS LIKE 'slow_queries';

查看索引使用的情况
mysql> SHOW STATUS LIKE 'handler_read%';
handler_read_key:这个值越高越好,越高表示使用索引查询到的次数。
handler_read_rnd_next:这个值越高,说明查询低效。

查看允许返回数据的大小设置
SHOW VARIABLES LIKE '%max_allowed_packet%';

全局锁
mysql> FLUSH TABLES WITH READ LOCK;
表锁
mysql> lock tables 表名 read;

解锁
mysql> unlock tables;

mysql> flush privileges;

too many connections 连接数量过多解决办法

重启mysql

打开配置文件/etc/my.cnf

在 [mysqld] 下面添加

max_connections=1000
wait_timeout = 600
interactive_timeout = 600

重启mysql即可
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: