root用户删除恢复,mysql二进制及源码安装,mysql关闭,重启,开启命令

  1. 关闭MySQL服务

 

  1. 进入配置文件找到my.cnf;在my.cnf中找到以下片段[mysqld];另起一行加入代码:skip-grant-tables 并保存

 

 

 

 

  1. 启动服务进入MySQL,插入root用户insert into user (Host,User,Password,ssl_cipher,x509_issuer,x509_subject) values('localhost','root',password('123'),'','','');

并赋予权限update user set Host='localhost',select_priv='y', insert_priv='y',update_priv='y',Alter_priv='y',delete_priv='y',create_priv='y',drop_priv='y',reload_priv='y',shutdown_priv='y',Process_priv='y',file_priv='y',grant_priv='y',References_priv='y',index_priv='y',create_user_priv='y',show_db_priv='y',super_priv='y',create_tmp_table_priv='y',Lock_tables_priv='y',execute_priv='y',repl_slave_priv='y',repl_client_priv='y',create_view_priv='y',show_view_priv='y',create_routine_priv='y',alter_routine_priv='y',create_user_priv='y' where user='root';commit;并刷新

 

4.删除之前配置文件插入内容

 

5.重启服务

service mysqld restart

 

 

 

源码安装

一.数据库的种类:

1.关系型数据库(RDBMS):
MySQL,Oracle,MSSQL(SQLserver)
2.非关系型数据库(NoSQL):
Redis,Memcache,MongoDB,elasticsearch


ELK:日志收集
E:elasticsearch
L:logstash
K:Kibana


二.MySQL的版本选择潜规则:
https://www.mysql.com/

MySQL5.6:
1.选择GA 6-12个月
2.小版本号为偶数版

MySQL5.7
1.选择GA 6-12个月
2.小版本号为偶数版
3.MySQL5.7.17以上版本 MGR

三.MySQL源码安装
1.解压
[root@db01 ~]# tar xf mysql-5.6.40.tar.gz
2.进入目录
[root@db01 ~]# cd mysql-5.6.40
[root@db01 mysql-5.6.40]# ll
3.生成编译文件

 #程序存放位置
cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.38 \
#数据存放位置
-DMYSQL_DATADIR=/application/mysql-5.6.38/data \
#socket文件存放位置
-DMYSQL_UNIX_ADDR=/application/mysql-5.6.38/tmp/mysql.sock \
#使用utf8字符集
-DDEFAULT_CHARSET=utf8 \
#校验规则
-DDEFAULT_COLLATION=utf8_general_ci \
#使用其他额外的字符集
-DWITH_EXTRA_CHARSETS=all \
#支持的存储引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
#禁用的存储引擎
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
#启用zlib库支持(zib、gzib相关)
-DWITH_ZLIB=bundled \
#启用SSL库支持(安全套接层)
-DWITH_SSL=bundled \
#启用本地数据导入支持
-DENABLED_LOCAL_INFILE=1 \
#编译嵌入式服务器支持
-DWITH_EMBEDDED_SERVER=1 \
# mysql5.6支持了google的c++mock框架了,允许下载,否则会安装报错。
-DENABLE_DOWNLOADS=1 \
#禁用debug(默认为禁用)
-DWITH_DEBUG=0

4.编译
make

5.安装
make install

 

cd /usr/local/mysql-5.6.40/

7.创建mysql系统用户
[root@db01 mysql-5.6.40]# useradd mysql -s /sbin/nologin -M

8.进入配置文件及脚本目录
[root@db02 mysql-5.6.40]# cd support-files/

9.拷贝配置文件到etc
[root@db01 support-files]# cp my-default.cnf /etc/my.cnf
cp: overwrite ‘/etc/my.cnf’? y

10.拷贝启动脚本
[root@db01 support-files]# cp mysql.server /etc/init.d/mysqld

11.进入初始化目录
[root@db01 mysql-5.6.40]# cd /usr/local/mysql-5.6.40/scripts/

 

mkdir /usr/local/mysql-5.6.40/tmp

 

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

 

 

 

12.初始化数据库
[root@db01 scripts]# ./mysql_install_db --user=mysql --basedir=/usr/local/mysql-5.6.40 --datadir=/usr/local/mysql-5.6.40/data

13.做软连接
[root@db02 scripts]# ln -s /usr/local/mysql-5.6.40 /usr/local/mysql

14.启动mysql
[root@db02 scripts]# /etc/init.d/mysqld start

Starting MySQL.Logging to '/usr/local/mysql/data/db02.err'.
. SUCCESS!

15.添加环境变量
[root@db02 scripts]# vim /etc/profile
export PATH="/usr/local/mysql/bin:$PATH"

16.加载环境变量
[root@db02 scripts]# source /etc/profile

17.授权
[root@db01 scripts]# chown -R mysql.mysql /usr/local/mysql*

18.连接mysql
[root@db02 scripts]# mysql

19.设置mysql密码
[root@db02 scripts]# mysqladmin -uroot -p password 123

20.连接mysql
[root@db01 scripts]# mysql -uroot -p123

 

 

 

 

 

二进制安装

压缩包放进去后解压

mv mysql-5.6.40-linux-glibc2.12-x86_64 /usr/local/mysql-5.6.40


6.进入mysql程序目录


[root@db02 ~]# cd /usr/local/mysql-5.6.40/

7.创建mysql系统用户
[root@db01 mysql-5.6.40]# useradd mysql -s /sbin/nologin -M

8.进入配置文件及脚本目录
[root@db02 mysql-5.6.40]# cd support-files/

9.拷贝配置文件到etc
[root@db01 support-files]# cp my-default.cnf /etc/my.cnf
cp: overwrite ‘/etc/my.cnf’? y

10.拷贝启动脚本
[root@db01 support-files]# cp mysql.server /etc/init.d/mysqld

11.进入初始化目录
[root@db01 mysql-5.6.40]# cd /usr/local/mysql-5.6.40/scripts/

12.初始化数据库
[root@db01 scripts]# ./mysql_install_db --user=mysql --basedir=/usr/local/mysql-5.6.40 --datadir=/usr/local/mysql-5.6.40/data

13.做软连接
[root@db02 scripts]# ln -s /usr/local/mysql-5.6.40 /usr/local/mysql

14.启动mysql
[root@db02 scripts]# /etc/init.d/mysqld start

Starting MySQL.Logging to '/usr/local/mysql/data/db02.err'.
. SUCCESS!

15.添加环境变量
[root@db02 scripts]# vim /etc/profile
export PATH="/usr/local/mysql/bin:$PATH"

16.加载环境变量
[root@db02 scripts]# source /etc/profile

17.授权
[root@db01 scripts]# chown -R mysql.mysql /usr/local/mysql*

18.连接mysql
[root@db02 scripts]# mysql

19.设置mysql密码
[root@db02 scripts]# mysqladmin -uroot -p password 123

20.连接mysql
[root@db01 scripts]# mysql -uroot -p123


四.mysql基础优化:
1.删除 没有用的库
mysql> show databases;
mysql> drop database test;
Query OK, 0 rows affected (0.00 sec)

2.删除没有用的用户
mysql> select user,host from mysql.user;
mysql> drop user root@'::1';
Query OK, 0 rows affected (0.00 sec)
mysql> delete from mysql.user where user='root' and host='db01';

 

 

 

 

关闭防火墙

  systemctl stop firewalld
 systemctl disable firewalld
 
 
 
防火墙配置相关
   getenforce  查看‘
暂时  
   setenforce 0
永久 
   配置文件

    vim /etc/sysconfig/selinux

  sed命令

   

 sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinux 
 
 
 
 
 

1、查看mysql版本
方法一:status;
方法二:select version();

2、Mysql启动、停止、重启常用命令
a、启动方式
1、使用 service 启动:
[root@localhost /]# service mysqld start (5.0版本是mysqld)
[root@szxdb etc]# service mysql start (5.5.7版本是mysql)

2、使用 mysqld 脚本启动:
/etc/inint.d/mysqld start

3、使用 safe_mysqld 启动:
safe_mysqld&

b、停止
1、使用 service 启动:
service mysqld stop

2、使用 mysqld 脚本启动:
/etc/inint.d/mysqld stop

3、mysqladmin shutdown

c、重启
1、使用 service 启动:
service mysqld restart 
service mysql restart (5.5.7版本命令)

2、使用 mysqld 脚本启动:
/etc/init.d/mysqld restart

 
 
 

 查看mysql服务

netstat -lntup |grep 3306

 

 

报错处理

The server quit without updating PID file

 

1、可能是/usr/local/mysql/data/mysql.pid文件没有写的权限
解决方法 :给予权限,执行 “chown -R mysql:mysql /var/data” “chmod -R 755 /usr/local/mysql/data”  然后重新启动mysqld!

2、可能进程里已经存在mysql进程
解决方法:用命令“ps -ef|grep mysqld”查看是否有mysqld进程,如果有使用“kill -9  进程号”杀死,然后重新启动mysqld!

3、可能是第二次在机器上安装mysql,有残余数据影响了服务的启动。
解决方法:去mysql的数据目录/data看看,如果存在mysql-bin.index,就赶快把它删除掉吧,它就是罪魁祸首了。本人就是使用第三条方法解决的 !

4、mysql在启动时没有指定配置文件时会使用/etc/my.cnf配置文件,请打开这个文件查看在[mysqld]节下有没有指定数据目录(datadir)。
解决方法:请在[mysqld]下设置这一行:datadir = /usr/local/mysql/data

5、skip-federated字段问题
解决方法:检查一下/etc/my.cnf文件中有没有没被注释掉的skip-federated字段,如果有就立即注释掉吧。

6、错误日志目录不存在
解决方法:使用“chown” “chmod”命令赋予mysql所有者及权限

7、selinux惹的祸,如果是centos系统,默认会开启selinux
解决方法:关闭它,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器试试

 

 

 

 

 

自己解决办法

1.mysql在启动时没有指定配置文件时会使用/etc/my.cnf配置文件,请打开这个文件查看在[mysqld]节下有没有指定数据目录(datadir)。
解决方法:请在[mysqld]下设置这一行:datadir = /usr/local/mysql/data

3.查看相关进程

3.kill -9 所有有关进程

 

posted on 2019-05-08 19:51  paulgeo  阅读(271)  评论(0编辑  收藏  举报