Linux-mysql安装、sql_mode、最大连接数、当前连接数等查询命令

mysql安装配置

yum search libaio # 检索相关信息

yum install libaio # 安装依赖包

yum list installed | grep mysql

如果有,就先全部卸载,命令如下:

yum -y remove mysql-libs.x86_64

方法1:tar安装 (可自选版本)

首先去官网下载需要安装的版本:MySQL :: Download MySQL Community Server (Archived Versions)

将下载的tar上传至/usr/local下

使用tar -zxvf 解压,并且重命名mysql

mv mysql-5.7.25 /usr/local/mysql

检查mysql组和用户是否存在,如果没有则创建

cat /etc/group|grep mysql

groupadd mysql

useradd -r -g mysql mysql  #useradd -r参数表示mysql用户是系统用户,不可用于登录系统

创建data目录

cd mysql

mkdir data

将/usr/local/mysql的所有者及所属组改为mysql

chown -R mysql.mysql /usr/local/mysql

mkdir /var/log/mariadb 
touch /var/log/mariadb/mariadb.log 

chown -R mysql:mysql  /var/log/mariadb/

 在/etc目录下创建my.cnf  内容如下

[mysqld]
lower_case_table_names=1
# 设置你希望的连接池大小
max_connections = 2000  
#设置mysql的安装目录
basedir =/usr/local/mysql
#设置mysql数据库的数据存放目录
datadir = /usr/local/mysql/data
#设置端口
port = 3306

socket = /tmp/mysql.sock
#设置字符集
character-set-server=utf8mb4
#日志存放目录
log-error = /usr/local/mysql/data/mysqld.log
pid-file = /usr/local/mysql/data/mysqld.pid
#允许时间类型的数据为零(去掉NO_ZERO_IN_DATE,NO_ZERO_DATE)
sql_mode=
#开启binlog
log-bin=mysql-bin
binlog-format=row
server-id=1

cd  /usr/local/mysql 

chmod 777 data

初始化mysql

./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

添加启动脚本和把启动脚本放到开机初始化目录

cp support-files/mysql.server /etc/init.d/mysql

 启动mysql

service mysql start    #status查看状态、stop关闭

然后查看data中的mysqld.log  找到默认的随机密码

或者在执行完初始化之后查看密码

mysql -u root -p   然后输入密码进入

   问题:-bash: mysql: command not found

       解决:ln -fs /usr/local/mysql/bin/mysql mysql

终端输入mysql -u root -p出现错误:-bash: mysql: command not found
      输入:alias mysql=/usr/local/mysql/bin/mysql
  或者 
ln -s  /usr/local/mysql/bin/mysql    /usr/bin

除了以上方法也可以,先启动服务(需要跳过授权表)

/etc/init.d/mysql start --skip-grant-tables

然后直接mysql -u root 无需密码直接进入,在运行如下命令重设密码。然后重新启动mysql
 

update mysql.user set authentication_string=password('000000') where user='root' and host='localhost';

flush privileges;

重新设置密码

set password=password('您的密码');

方法2:rpm安装 (默认5.6版本)

cd usr

cd local

mkdir mysql

cd mysql

wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

如果提示-bash: wget: 未找到命令,请先执行 yum install wget 安装 wget

如果提示certificate common name “www.mysql.com” doesn’t match requested host name

“dev.mysql.com”.

就wget --no-check-certificate http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

安装mysql服务

yum localinstall mysql-community-release-el7-5.noarch.rpm

验证是否下载成功

yum repolist enabled | grep "mysql.*-community.*"

查看 MySQL 版本,执行

yum repolist all | grep mysql

看到 5.5, 5.7 版本是默认禁用的,因为现在最新的稳定版是 5.6

通过 Yum 来安装 MySQL

yum install mysql-community-server

     如果运行上面命令出现:

          错误:软件包:akonadi-mysql-1.9.2-4.el7.x86_64 (@anaconda)      。。。。

           解决方案:

       yum -y remove mariadb-libs

           运行

        yum install mysql-community-server

启动 MySQL Server

systemctl start mysqld

查看 MySQL Server 状态

systemctl status mysqld

关闭 MySQL Server

systemctl stop mysqld

给mysql root用户修改密码

设置MySQL 数据库root 用户的密码:

# mysqladmin -u root password '123456'

登录数据库:

# mysql -u root -p

输入密码

mysql->

简单的创建远程连接账号

修改root权限 创建远程账号连接

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'chenyang' WITH GRANT OPTION; 

(第一个root表示用户名,%表示所有的电脑都可以连接,也可以设置某个ip地址运行连接,第二个chenyang表示密码)

flush privileges; 命令立即生效

现在就可以用Navicat等数据库连接软件连接试试看啦!!!

如果无法连接可能是防火墙的问题,查看解决:设置Linux CentOS7 iptables防火墙设置_ccyy-Csdn的博客-CSDN博客


 

Linux环境下mysql大小写敏感解决办法

1、Linux下mysql安装完后是默认:区分表名的大小写,不区分列名的大小写;

2、用root帐号登录后,在/etc/my.cnf中的[mysqld]后添加添加lower_case_table_names=1,重启MYSQL服务,这时已设置成功:不区分表名的大小写;(注意!!!!!是[mysqld]下一行

lower_case_table_names参数详解:

lower_case_table_names= 0

其中 0:区分大小写,1:不区分大小写

设置账号和权限

mysql5.7数据库账号密码设置以及权限分配_ccyy-Csdn的博客-CSDN博客_mysql默认数据库账号密码

设置mysql global.sql_mode

(为什么要设置请看:mysql global.sql_mode 采坑之路 解决_ccyy-Csdn的博客-CSDN博客_global.sql_mode

大都问题都在于mysql5.7 版本中有了一个select mode(严格模式)最简单的方法就是设置sql_mode为空

首先查询:

select @@sql_mode; 


sql_mode中有很多,

运行以下设置空

set @@global.sql_mode ='';

flush privileges; 

MySQL查看最大连接数和修改最大连接数

1、查看最大连接数

show variables like '%max_connections%';


2、修改最大连接数

set GLOBAL max_connections = 200;

mysql其他查询命令

命令: show status;
命令:show status like '%下面变量%'; 
Aborted_clients                由于客户没有正确关闭连接已经死掉,已经放弃的连接数量。 
Aborted_connects            尝试已经失败的MySQL服务器的连接的次数。 
Connections                     试图连接MySQL服务器的次数。 
Created_tmp_tables          当执行语句时,已经被创造了的隐含临时表的数量。 
Delayed_insert_threads     正在使用的延迟插入处理器线程的数量。 
Delayed_writes                用INSERT DELAYED写入的行数。 
Delayed_errors                用INSERT DELAYED写入的发生某些错误(可能重复键值)的行数。 
Flush_commands            执行FLUSH命令的次数。 
Handler_delete                 请求从一张表中删除行的次数。 
Handler_read_first          请求读入表中第一行的次数。 
Handler_read_key           请求数字基于键读行。 
Handler_read_next           请求读入基于一个键的一行的次数。 
Handler_read_rnd           请求读入基于一个固定位置的一行的次数。 
Handler_update              请求更新表中一行的次数。 
Handler_write                 请求向表中插入一行的次数。 
Key_blocks_used            用于关键字缓存的块的数量。 
Key_read_requests         请求从缓存读入一个键值的次数。 
Key_reads                      从磁盘物理读入一个键值的次数。 
Key_write_requests         请求将一个关键字块写入缓存次数。 
Key_writes                      将一个键值块物理写入磁盘的次数。 
Max_used_connections    同时使用的连接的最大数目。 
Not_flushed_key_blocks   在键缓存中已经改变但是还没被清空到磁盘上的键块。 
Not_flushed_delayed_rows      在INSERT DELAY队列中等待写入的行的数量。 
Open_tables                  打开表的数量。 
Open_files                     打开文件的数量。 
Open_streams               打开流的数量(主要用于日志记载) 
Opened_tables              已经打开的表的数量。 
Questions                     发往服务器的查询的数量。 
Slow_queries                要花超过long_query_time时间的查询数量。 
Threads_connected       当前打开的连接的数量。 
Threads_running          不在睡眠的线程数量。 
Uptime                        服务器工作了多少秒。

(参考:如何将centos7自带的firewall防火墙更换为iptables防火墙 - JUSTZHI - 博客园

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值