mysql数据库
1.mysql在doc窗口的操作1.1 登录mysql1.1.1 登录本地mysql1.以管理员身份打开doc窗口;2.开启mysql服务;C:\WINDOWS\system32>net start mysql请求的服务已经启动。3.切换到mysql安装目录下的bin目录;C:\WINDOWS\system32>cd C:\Program Files (x86)\MySQL\MySQL
字段
| 类型 | 存储占用字节 | 存储数值范围 |
|---|---|---|
| tinyint | 1 | -2 ^ 7 ~ 2 ^ 7 - 1 (-128 ~ 127),无符号范围 0 ~ 255 |
| smallint | 2 | -2 ^ 15 ~ 2 ^ 15 - 1 |
| mediumint | 3 | -2 ^ 23 ~ 2 ^ 23 - 1 |
| int | 4 | -2 ^ 31 ~ 2 ^ 31 - 1 (-2147483648 ~ 2147483647,长度10-11) ,无符号范围 0 ~ 4294967295 |
| bigint | 8 | -2 ^ 63 ~ 2 ^ 63 - 1 (-9223372036854775808~9223372036854775807,长度19-20) |
经常见到类型后面跟着括号,形如int(M),这代表什么意思呢?
答:M表示最大显示宽度,与存储无关!!!
从8.0.17版本开始,TINYINT, SMALLINT, MEDIUMINT, INT, and BIGINT类型的显示宽度将失效。
tinyint(M), M默认为4;
SMALLINT(M), M默认为6;
MEDIUMINT(M), M默认为9;
INT(M),M默认为11;
BIGINT(M),M默认为20.
varchar(M)代表是M字节的长度吗?
答:在mysql5以上,M代表字符长度,存储范围更大。
1.windows命令行操作mysql
1.1 登录mysql
1.1.1 登录本地mysql
1.以管理员身份打开doc窗口;
2.开启mysql服务,net start mysql;
对应的关闭服务命令为 net stop mysql。
相应linux上开启mysql:service mysql start;关闭服务:service mysql stop;重启服务:service mysql restart;
C:\WINDOWS\system32>net start mysql
请求的服务已经启动。
3.切换到mysql安装目录下的bin目录;
C:\WINDOWS\system32>cd C:\Program Files (x86)\MySQL\MySQL Server 5.5\bin
4.执行登录命令,输入密码即可登录成功;
命令:mysql -u <用户名> -p,这个命令会提示输入密码;
也可以执行mysql -u <用户名> -p <密码>,显式输入密码,一般用于java程序直接操作mysql。
C:\Program Files (x86)\MySQL\MySQL Server 5.5\bin>mysql -u root -p

1.1.2 登录远程mysql
命令:mysql -h -P -u <用户名> -p
C:\WINDOWS\system32>mysql -h 192.168.5.116 -P 3306 -u root -p
1.2 常用命令
1.2.1 显示数据库
mysql> show databases;

1.2.2 连接数据库;
命令:use <数据库名>
mysql> use db_mis;

1.2.3 显示表
mysql> show tables;

1.2.4 显示当前时间
mysql> select now();

1.2.5 显示用户的权限
命令:show grants for <用户名>
mysql> show grants for root;
1.2.6 创建用户
mysql> create user 'test'@'*' identified by '123456';
1.2.7 修改表名、增加列、修改字段长度、修改列值
命令:alter table <旧表名> rename [as] <新表名>
ALTER TABLE SEAL_APP_MANAGE rename SEAL_APP_MANAGE_MP;
ALTER TABLE SEAL_SIGNER MODIFY ID_NUMBER VARCHAR(50);
ALTER TABLE SEAL_SIGNER add column HMAC_SM3 varchar(50) not null;
UPDATE SEAL_USER SET name = ‘test’ where id = 1;
-- 删除某列
ALTER TABLE table_name DROP COLUMN field_name;
1.2.8 支持大写
Windows下的MySQL,所建数据库和表,名字全部保存为小写,如果需要支持大写,可以修改MySQL安装目录下的my.ini文件,将属性lower_case_table_names的值修改为2即可,如果没有此属性就自己添加,然后重启MySQL服务。
示例:
lower_case_table_names=2
1.2.9 导入和导出
导入SQL文件:登录mysql,并进入指定数据库NETSEAL_6_MP,使用source命令执行SQL文件。
/usr/local/mysql/bin/mysqldump -u root -p NETSEAL_6 SEAL_APP_MANAGE SEAL_SIGNER > mp.sql
导出数据库时,若表中有二进制数据,要使用参数–hex-blob将而进驻导出成十六进制才能成功导入。
C:\Program Files (x86)\MySQL\MySQL Server 5.5\bin>mysqldump -uroot -proot NETSEAL_6_MP SEAL_PHOTO > F:/1.sql
-- 有二进制数据时的导出方式
C:\Program Files (x86)\MySQL\MySQL Server 5.5\bin>mysqldump -uroot -proot NETSEAL_6_MP SEAL_PHOTO_MP --hex-blob > F:/2.sql
1.2.10 查询
-- 查询指定库里所有表名
select TABLE_NAME FROM information_schema.tables where TABLE_SCHEMA='NETSEAL_7';
-- 拼接删表数据SQL
select concat('delete table ',TABLE_NAME,';') FROM information_schema.tables where TABLE_SCHEMA='NETSEAL_7';
1.3 远程登录配置
默认情况下,mysql帐号不允许从远程登陆,只能在localhost登录。
-
方式一:改mysql数据库的user表
登录mysql后查看所有数据库,会发现有一个mysql数据库,进入user表。

默认user表只有一条数据:host为localhost的root用户才可以登录;
可以新增一条host为%的root用户,这样其他任何地址都可以用root登录了。
!!!这种方式谁都可以连,不安全。 -
方式二:授权法
- 创建新的用户(可选);
创建一个test用户,ip为*,密码为123456
- 创建新的用户(可选);

- 授权
授权test用户使用123456密码,从任何ip连接mysql服务器,对所有数据库和表有所有的权限。
这里的ip可以和user表里的host不一样,不一样的时候会自动在user表新增一条数据。
mysql> grant all privileges on *.* to 'test'@'%' identified by '123456' with grant option;
mysql> flush privileges;
可以只授权查询权限;
mysql> show grants for test;
ERROR 1141 (42000): There is no such grant defined for user 'test' on host '%'
mysql> grant select on *.* to 'test'@'10.20.61.55' identified by '123456' with grant option;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> show grants for test;
+-----------------------------------------------------------------------------------------------------+
| Grants for test@% |
+-----------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'test'@'%' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' |
+-----------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
切换至test用户验证一下:
C:\Program Files (x86)\MySQL\MySQL Server 5.5\bin>mysql -u test -p
Enter password: ******
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
+--------------------+
1 row in set (0.00 sec)
mysql> use db_mis;
ERROR 1044 (42000): Access denied for user 'test'@'%' to database 'db_mis'
主从复制
mysql隔离级别的发展史:https://www.cnblogs.com/shoshana-kong/p/10516404.html
准备工作:
- 10.20.61.55 mysql5.5 主数据库
- 10.20.61.41 mysql5.7 从数据库
两台电脑的mysql创建同一个测试数据库,名为test。
mysql主从复制,基本思路是由主数据库分配连接账户;由从数据库发起同步请求。
windows版
1.1 主数据库配置
- 打开my.ini,添加配置;
# 主从复制
server-id=1 #设置server-id
log-bin=mysql-bin #开启二进制文件
#同步的数据库,除此之外别的不同步(和下面binlog-ignore-db二选一)
binlog_do_db=test
#不同步数据库,除此之外都同步
#binlog-ignore-db = information_schema
#binlog-ignore-db = mysql
- 重启mysql服务
可以在计算机-管理-服务里找到mysql服务,进行重启;
也可以使用命令行,先停止net stop mysql,再启动net start mysql。
C:\WINDOWS\system32>net stop mysql
MySQL 服务正在停止..
MySQL 服务已成功停止。
C:\WINDOWS\system32>net start mysql
MySQL 服务正在启动 .
MySQL 服务已经启动成功。
- 给从服务器分配账号
创建一个mySlave用户,密码是123456,允许从任何ip连接主服务器。
C:\WINDOWS\system32>cd C:\Program Files (x86)\MySQL\MySQL Server 5.5\bin
C:\Program Files (x86)\MySQL\MySQL Server 5.5\bin>mysql -u root -p
Enter password: ****
mysql> create user 'mySlave'@'%' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> grant replication slave on *.* to 'mySlave'@'%';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
- 查看master状态,记住二进制文件名和位置
文件名和位置用于从服务器知道该从哪开始同步。
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 411 | test | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
1.2 从数据库配置
- 打开my.ini,添加配置;
server-id=2 #设置server-id
log-bin=mysql-bin #开启二进制文件
- 重启mysql服务;
- 配置主数据库信息;
主数据库IP:10.20.61.55;
主数据库端口:3306;
同步用户:mySlave;
同步用户密码:123456;
二进制文件名:mysql-bin.000001;
二进制文件位置:411;
C:\WINDOWS\system32>cd C:\Program Files (x86)\MySQL\MySQL Server 5.7\bin
C:\Program Files (x86)\MySQL\MySQL Server 5.7\bin>mysql -u root -p
Enter password: ****
mysql> CHANGE MASTER TO MASTER_HOST='10.20.61.55',MASTER_PORT=3306,MASTER_USER='mySlave',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=411;
Query OK, 0 rows affected, 2 warnings (0.04 sec)
- 启动slave同步线程;
mysql> start slave;
Query OK, 0 rows affected (0.01 sec)
- 查看slave同步线程状态;
Slave_IO_Running: Yes,Slave_SQL_Running: Yes时说明两个线程已启动,主从复制配置成功。
mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 10.20.61.55
Master_User: mySlave
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 411
Relay_Log_File: DESKTOP-EU1I1IL-relay-bin.000002
Relay_Log_Pos: 304
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 411
Relay_Log_Space: 521
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
Master_UUID:
Master_Info_File: E:\火狐\mysql-5.7.28-winx64\data\master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
Replicate_Rewrite_DB:
Channel_Name:
Master_TLS_Version:
1 row in set (0.00 sec)
ERROR:
No query specified
- 测试验证;
在主数据库里进行添加数据,刷新从数据库即可看到主数据库添加的数据,表明主从复制成功。
linux版
基本和Windows版一致,只是mysql服务的启停命令不一样。
优化
SQL写法
禁止造成全表扫描,例如:like %xxx%、不使用索引、in、not in、or、
| 黑名单 | 解决方案 |
|---|---|
| select * | select 具体字段 |
| like %xxx% | like xxx% |
| in、not in | between…and… |
| or | union |
| is null | 字段设置默认值 |
| 子查询 | exist |
explain分析
用法详解
explain sql,显示sql执行效率
explain select * from table
explain各列解释:
type:显示连接使用了何种类型。从最好到最差的连接类型为const、eq_ref、ref、range、index和all。阿里规约推荐至少得达到range级别!
possible_keys:可能应用在这张表中的索引。
key:实际应用在这张表中的索引。
key_len:使用的索引的长度。在不损失精确性的情况下,长度越短越好。
ref:显示索引的哪一列被使用了。
rows:mysql完成此请求扫描的行数。
extra:包含不适合在其他列中展示,但十分重要的额外信息。
extra读不懂,可以通过示例来理解,经典例子select id和select *:select id会用到using index,select *会造成不走索引树的全表扫描。
type
const:主键索引。
eq_ref:唯一索引。
ref:非唯一索引扫描,或 唯一索引的前缀扫描。
range:索引范围扫描。常现于带between,带有<, >,in,or等语句中。
index:遍历索引树。
all:全表扫描。
extra
using index:表明索引用来读取数据,读取索引树,避免了扫描表的数据行;
using where,using index:表明索引被用来执行索引键值的查找,读取索引树,避免了扫描表的数据行;
using where:使用了where条件;
参考博客:MySql学习笔记(八):explain之extra:https://blog.51cto.com/u_13593129/2378340
示例
现有表seal_seal_dept,印章机构中间表;
索引:
主键索引PRIMARY:ID
组合索引N_SEAL_SEAL_DEPT:(SEAL_ID,DEPT_ID)
Q1: 查询id为2100000002001的记录,会用到索引吗?
答:会。会用到主键索引
explain select * from seal_seal_dept where ID = 2100000002001;

Q2: 查询seal_id为2100000002001的记录,会用到索引吗?
答:会。会用到组合索引:(SEAL_ID,DEPT_ID)
Q3: 查询dept_id为1001的记录,会用到索引吗?
答:会。会用到组合索引:(SEAL_ID,DEPT_ID)
explain select * from seal_seal_dept where DEPT_ID = 1001;

Linux命令行操作mysql
1. Linux安装mysql
在linux系统上,通过执行一个服务安装脚本,一体化安装mysql数据库,完成建库建表操作,并初始化项目。
-
大体思路:
在installServer.sh脚本中,询问是否安装mysql?若是,即调用执行mysql_install.sh;若否,则直接执行项目的初始化安装。 -
脚本准备:
- 服务安装脚本installServer.sh;
- 数据库安装脚本mysql_install.sh;
- 建库建表脚本sql.sql;
- 目录结构
—mysql
———soft
————mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
———sql
————sql.sql
———mysql_install.sh
———my.cnf
—installServer.sh
installServer.sh
installServer.sh
#!/bin/bash
chmod +x *.sh
echo " setting up mysql..."
./mysql/mysql_install.sh
echo " setting up mysql end..."
echo " setting up Server..."
echo " setting up Server end..."
linux安装mysql(yum安装)
mysql集群:
用户输入serverId
默认安装路径:/usr/local/mysql
1. 配置网络和DNS(修改/etc/sysconfig/network和/etc/hosts)
2. 配置my.cnf:
server_id
loose-group_replication_local_address
loose-group_replication_group_seeds
loose-group_replication_ip_whitelist
3. 创建用户组
4. 安装
- 初始化
#!/bin/bash
#1.init param
mysql_file=mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz #mysql安装包
mysql_files=mysql-8.0.20-linux-glibc2.12-x86_64 #mysql安装包解压后的文件名
install_path=/usr/local/mysql #安装路径
THIS_PATH=$(pwd)/mysql #mysql安装文件所在目录路径
CK_COMMAND="libaio"
- 安装之前先查询是否已安装
#2.isntall libaio*
command=`rpm -qa | grep "$CK_COMMAND"` #rpm查询是否已安装
CK_COMMAND="libaio"
install_comm="libaio"
ck_install=1; #未安装
for comm in $command
do
if [ $(echo $comm | grep $CK_COMMAND) != "" ]
then
ck_install=2 #已安装
break
fi
done
#echo $ck_install
if [ $ck_install == 1 ] #未安装
then
yum install -y $install_comm #yum安装mysql
fi
#3.Decompress mysql
MYSQL_TMP_PATH=$THIS_PATH/soft
MYSQL_PK_PATH=$THIS_PATH/soft/$mysql_files
if [ -d $MYSQL_PK_PATH ];then #如果MYSQL_PK_PATH是个目录
rm -rf $MYSQL_PK_PATH #删除这个目录
fi
chmod 755 $MYSQL_TMP_PATH/$mysql_file #赋予755权限,即user组可以读+写+执行,group组和other组可以读+执行
tar -xvf $MYSQL_TMP_PATH/$mysql_file #解压
if [ -d $install_path ] #若mysql安装路径已存在
then
rm -rf $install_path #删除安装路径,即/usr/local/mysql
fi
mv $(pwd)/$mysql_files $install_path #解压后的文件改名?复制到/usr/local/mysql?
#4.Copy config file
cp $THIS_PATH/my.cnf /etc/ #mysql配置文件my.cnf复制到etc目录下
#5.Create mysql group and user
user=$(cat /etc/passwd |grep "mysql") #查询/etc/passwd文件中是否有mysql组
if [[ -z $user ]];then #如果user长度为0,即没有mysql组
groupadd mysql -g 27 #创建mysql组,指定GID为27
useradd mysql -u 27 -c "Mysql Server" -d /var/lib/mysql -s /sbin/nologin -g mysql
#创建新的用户mysql,-u指定ID为27,-g属于mysql组,-c备注为Mysql Server,-d用户登入时的起始目录为/var/lib/mysql,-s用户登入后所使用的shell为/sbin/nologin
fi
#6.Change owner to mysql
chown mysql:mysql $install_path -R #修改mysql用户(mysql组)对于/usr/local/mysql有读的权限
#7.Initialization data
if [ ! -x $install_path/data/ ];then #如果/usr/local/mysql/data/不可执行
mkdir $install_path/data/ #新建该目录
fi
chmod +x $install_path/bin/mysql_ssl_rsa_setup #赋予执行权限
$install_path/bin/mysqld --initialize --user=mysql --datadir=$install_path/data/ --basedir=$install_path #初始化mysqld守护线程的基础信息
$install_path/bin/mysql_ssl_rsa_setup --datadir=$install_path/data/ #初始化mysql_ssl_rsa_setup的基础信息
#8.Add mysql server
chmod +x $install_path/support-files/mysql.server #赋予执行权限
cp $install_path/support-files/mysql.server /etc/rc.d/init.d/mysql #mysql.server复制到/etc/rc.d/init.d/mysql下,实现开机自启
sed -i "s/conf=/&\/usr\/local\/mysql/" /etc/rc.d/init.d/mysql #???
#9.Start mysql
$install_path/support-files/mysql.server start #启动mysql
sleep 1s
$install_path/support-files/mysql.server stop #停止mysql
sleep 1s
$install_path/support-files/mysql.server start #启动mysql
#10.init passowrd
echo "---star---init---mysql---password--"
sleep 1s
#EOF相当于echo,支持追加多行
#设置root用户密码是Infosea@2020,从本机登录,再修改为不限ip登录
$install_path/bin/mysql -uroot -pt << EOF
flush privileges;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Infosec@2020';
use mysql;
update user set host = '%' where user = 'root';
EOF
$install_path/support-files/mysql.server stop #停止mysql服务
sleep 1s
sed -e'/skip-grant-tables/d' /etc/my.cnf > /etc/my-tmp-2391521232443689.cnf
rm -rf /etc/my.cnf #删除/etc/my.cnf文件
mv /etc/my-tmp-2391521232443689.cnf /etc/my.cnf #/etc/my-tmp-2391521232443689.cnf更名为my.cnf
sleep 1s
#10 init linux star server
cat>>/etc/rc.d/rc.local<<EOF
# mysql start
$install_path/support-files/mysql.server start
EOF
#启动mysql
$install_path/support-files/mysql.server start
echo "---create database and tables---"
chmod 777 $THIS_PATH/sql/netseal.sql #赋予777权限
#root用户登录,执行建库建表脚本
$install_path/bin/mysql -uroot -pInfosec@2020 << EOF
source $THIS_PATH/sql/netseal.sql;
EOF
echo "---mysql---install----end---"
2. 使用mysql
Linux下MySQL的内容:
1、数据库名严格区分大小写
2、表名严格区分大小写的
3、表的别名严格区分大小写
4、变量名严格区分大小写
5、列名在所有的情况下均忽略大小写
6、列的别名在所有的情况下均忽略大小写
查看是否安装mysql
[root@NetSeal ~]$ rpm -qa|grep -i mysql #查找名含mysql(不区分大小写)的软件包
mysql-community-client-8.0.14-1.e16.x86_64
2.1 查看mysql版本
[root@NetSeal ~]$ mysql -V
mysql Ver 8.0.14 for Linux on x86_64 (MySQL Community Server - GPL)
2.2 查看mysql安装目录
[root@NetSeal ~]$ whereis mysql
mysql: /usr/bin/mysql /usr/lib64/mysql /usr/local/mysql
2.3 查看mysql启动状态
[root@NetSeal ~]$ service mysql status
SUCCESS! MySQL running(8275)
3.卸载mysql
3.1 rpm方式安装的卸载
- 查看是否安装mysql
[root@NetSeal ~]$ rpm -qa|grep -i mysql #查找名含mysql(不区分大小写)的软件包
mysql-community-client-8.0.14-1.e16.x86_64
- 卸载
[root@NetSeal ~]$ rpm -e -nodeps mysql-community-client-8.0.14-1.e16.x86_64
3.2 yum方式安装的卸载
- 查看是否安装mysql
[root@NetSeal ~]$ rpm -qa|grep -i mysql #查找名含mysql(不区分大小写)的软件包
mysql-community-client-8.0.14-1.e16.x86_64
- 卸载mysql
[root@NetSeal ~]$ yum remove mysql-community-client-8.0.14-1.e16.x86_64 #卸载
- 卸载其他依赖
[root@NetSeal ~]$ rpm -qa|grep -i mysql #查询mysql依赖
[root@NetSeal ~]$ yum remove mysql-libs
[root@NetSeal ~]$ yum remove mysql-server
[root@NetSeal ~]$ yum remove perl-DBD-MySQL
[root@NetSeal ~]$ yum remove mysql
4. 导出数据库数据
4.1 导出库中所有数据
[root@NetSeal0 ~]$ /usr/local/mysql/bin/mysqldump -u root -p NETSEAL_6 > /home/zj/netseal_6.sql;
[root@NetSeal0 ~]$ 输入密码,即可导出
4.1 导出库中某张表数据
[root@NetSeal0 ~]$ /usr/local/mysql/bin/mysqldump -u root -p NETSEAL_6 SEAL_APP_MANAGE SEAL_SIGNER > /home/zj/mp.sql;
[root@NetSeal0 ~]$ 输入密码,即可导出
-- 有二进制数据时
[root@NetSeal0 ~]$ /usr/local/mysql/bin/mysqldump -u root -p NETSEAL_6 SEAL_PHOTO_DATA --hex-blob> /home/zj/mp.sql;
[root@NetSeal0 ~]$ 输入密码,即可导出
5. 配置支持ipv6

随笔
一、 启动
1、使用 service 启动:service mysql start
2、使用 mysqld 脚本启动:/etc/init.d/mysql start
3、使用 safe_mysqld 启动:safe_mysql&
/usr/local/mysql/bin/mysqld_safe – 特殊安装环境,不知从哪里关闭
二、停止
1、使用 service 启动:service mysql stop
2、使用 mysqld 脚本启动:/etc/init.d/mysql stop
3、mysqladmin shutdown
三、重启
1、使用 service 启动:service mysql restart
2、使用 mysqld 脚本启动:/etc/init.d/mysql restart
$install_path(安装目录)/support-files/mysql.server start
sleep 1s
$install_path/support-files/mysql.server stop
sleep 1s
$install_path/support-files/mysql.server start
1.先登录
/usr/local/mysql/bin/mysql -uroot -proot
2.具体命令
service mysql start;#启动mysql
service mysql stop;#停止mysql
service mysql restart;#重启mysql
3.退出
quit;
show


linux下mysql表名区分大小写,字段不区分大小写!

arm平台安装mariadb
近期遇到了一个安装好mariadb,但启动不了的问题,经查询,是操作系统缺少libaio包,特此记录一下。
题外话:一直以为mariadb和mysql没有很大的不同,但其实mariadb里已经没有/etc/my.cnf文件了。
问题
执行systemctl start mariadb时报错,提示我们执行systemctl status mariadb.service和journalctl -xe查看更多详情
执行journalctl -xe,发现好像是缺少libaio.so.1
经查询,确实没有
然后去一台正常的机器上查询,得到版本号libaio-0.3.112-1.e18.aarch64
去度娘搜索,找到一个下载链接
下载后,上传到有问题的那台机器/home/zj目录下
再次执行systemctl start mariadb,已经不报错
更多推荐

所有评论(0)