Linux下安装mysql教程

Linux下安装mysql

 MySQL官网: https://dev.mysql.com/downloads/mysql/
  1. 到mysql官网下载mysql编译好的二进制安装包,在下载页面Select Platform:选项选择linux-generic,而后把页面拉到底部,64位系统下载Linux - Generic (glibc 2.5) (x86, 64-bit),32位系统下载Linux - Generic (glibc 2.5) (x86, 32-bit)html

     
  2.  解压32位安装包:

    进入安装包所在目录,执行命令:tar  -zxvf  mysql-5.6.17-linux-glibc2.5-i686.tar.gznode

     

    因为MySQL运行须要libaio1库,因此须要运行如下命令进行安装:mysql

    sudo apt-get install libaio1
     
  3.  复制解压后的mysql目录到系统的本地软件目录:

    执行命令:cp mysql-5.6.17-linux-glibc2.5-i686 /usr/local/mysql  -rlinux

    注意:目录结尾不要加/sql

     
     
  4.  添加系统mysql组和mysql用户:

    执行命令:groupadd mysql   和 useradd -r -g mysql mysql数据库

     
     
     
  5.  安装数据库:

    进入安装mysql软件目录:执行命令 cd /usr/local/mysqlvim

    修改当前目录拥有者为mysql用户:执行命令 chown -R mysql:mysql ./windows

    安装数据库:执行命令 ./scripts/mysql_install_db --user=mysqlcentos

    修改当前目录拥有者为root用户:执行命令 chown -R root:root ./服务器

    修改当前data目录拥有者为mysql用户:执行命令 chown -R mysql:mysql data

    到此数据库安装完毕

     
     
  6.  启动mysql服务和添加开机启动mysql服务:

    添加开机启动:执行命令cp support-files/mysql.server /etc/init.d/mysql,把启动脚本放到开机初始化目录

    启动mysql服务:执行命令service mysql start

    执行命令:ps -ef|grep mysql 看到mysql服务说明启动成功,如图

     
     
  7.  修改mysql的root用户密码,root初始密码为空的:

    执行命令:./bin/mysqladmin -u root password '密码'

     
     
  8. 把mysql客户端放到默认路径:

    ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql

    注意:建议使用软链过去,不要直接包文件复制,便于系统安装多个版本的mysql

 

注意问题:

自我感受mysql 5.7这一系列的版本都很变态啊,不论是windows的仍是Linux,安装的时候总会出些莫名其妙的想法。当初在windows下安装mysql的时候,年轻不懂事下了5.7版本的,结果出现了各类难以捉摸的bug,在网上查也找不到,最后发现一个同病相怜的人诉说是版本问题,装成5.6就行了。而此次装linux的,年少轻狂的我忘记了windows下的教训,装了5.7,结果一直出现各类bug,哎,仍是太年轻了。但愿你们能吸收教训吧。

 

9.安装完后的使用

安装完之后,你们能够输入mysql -uroot -p,而后enter password来进入mysql。

进去后可使用mysql的各类语法,首先能够查看database:show databases。

 

10:远程用户创建

grant all privileges on *.* to '新用户名'@'%' identified by '新密码';
flush privileges;

11:添加系统路径

vim /etc/profile export PATH=/usr/local/mysql/bin:$PATH source /etc/profile

 

 

Linux下mysql的卸载:

一、查找之前是否装有mysql

命令:rpm -qa|grep -i mysql

能够看到mysql的两个包:

mysql-4.1.12-3.RHEL4.1

mysqlclient10-3.23.58-4.RHEL4.1

二、删除mysql

删除命令:rpm -e --nodeps 包名

( rpm -ev mysql-4.1.12-3.RHEL4.1 )

三、删除老版本mysql的开发头文件和库

检查各个mysql文件夹是否删除干净

find / -name mysql

结果以下:

/var/lib/mysql

/usr/local/mysql

/usr/lib/mysql

/usr/include/mysql

命令:

rm -fr /usr/lib/mysql

rm -fr /usr/include/mysql

注意:卸载后/var/lib/mysql中的数据及/etc/my.cnf不会删除,若是肯定没用后就手工删除

rm -f /etc/my.cnf

rm -fr /var/lib/mysql

 4.删除mysql用户及用户组

 userdel mysql

groupdel mysql

 

Linux下建立和删除软连接:

1.先创建一个软链接

复制代码
1 [root@rekfan.com test]# ls -il
 2 总计  0
 3 1491138 -rw-r–r– 1 root root 48 07-14 14:17 file1
 4 1491139 -rw-r–r– 2  root root 0 07-14 14:17 file2
 5 1491139 -rw-r–r– 2 root root 0 07-14 14:17  file2hand
 6 #创建file1和file1soft软链接
 7 [root@rekfan.com test]# ln -s file1  file1soft
 8 [root@rekfan.com test]# ls -il
 9 总计 0
10 1491138 -rw-r–r– 1 root  root 48 07-14 14:17 file1
11 1491140 lrwxrwxrwx 1 root root 5 07-14 14:24  file1soft -> file1
12 1491139 -rw-r–r– 2 root root 0 07-14 14:17  file2
13 1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2hand
复制代码

其中,ln -s file1 filesoft 中的file1就是源文件,file1soft就是目标连接文件名,其做用是当进入filesoft目录,其实是连接进入了file1目录

2.删除上面创建的软链接

复制代码
1 [root@rekfan.com test]# ls -il
 2 总计  0
 3 1491138 -rw-r–r– 1 root root 0 07-14 14:17 file1
 4 1491140 lrwxrwxrwx 1  root root 5 07-14 14:24 file1soft -> file1
 5 1491139 -rw-r–r– 2 root root 0  07-14 14:17 file2
 6 1491139 -rw-r–r– 2 root root 0 07-14 14:17  file2hand
 7 #删除软链接
 8 [root@rekfan.com test]# rm -rf file1soft
 9 [root@rekfan.com test]#  ls -il
10 总计 0
11 1491138 -rw-r–r– 1 root root 0 07-14 14:17 file1
12 1491139  -rw-r–r– 2 root root 0 07-14 14:17 file2
13 1491139 -rw-r–r– 2 root root 0 07-14  14:17 file2hand
复制代码

 

 

启动mysql时显示:/tmp/mysql.sock 不存在的解决方法

复制代码
1 [root@localhost mysql]# bin/mysqladmin -u root password root
2 bin/mysqladmin: connect to server at 'localhost' failed
3 error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)'
4 Check that mysqld is running and that the socket: '/tmp/mysql.sock' exists!
5 [root@localhost mysql]# bin/mysql -u root -p
6 Enter password:
7 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
8 分析:是/tmp/mysql.sock 不存在
复制代码

因为搜索的mysql.sock路径是在/tmp下,而mysql安装的mysql.sock在/var/lib/mysql下,因此选择创建符号(软)链接:

复制代码
1 # ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
2 # bin/mysql -u root
3 Welcome to the MySQL monitor. Commands end with ; or g.
4 Your MySQL connection id is 1
5 Server version: 5.0.45 MySQL Community Server (GPL)
6 Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
7 mysql>
复制代码

 

安装mysql报错:FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db:Data::Dumper

解决方法 :安装autoconf库
命令:yum-y install autoconf   //此包安装时会安装Data:Dumper模块

 

Centos 7以上启动mysql报错:Starting MySQL. ERROR! The server quit without updating PID file (/var/lib/mysql/bj-dev2.pid).

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

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

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

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

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

六、错误日志目录不存在。(本人是这个方法解决的)
解决方法:使用“chown” “chmod”命令赋予mysql全部者及权限

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

 
 
 二:开启mysql binlog 日志记录
 

    binlog日志,即binary log,是二进制日志文件。它有两个做用,一是增量备份,即只备份新增的内容;二是用于主从复制等,即主节点维护了一个binlog日志文件,从节点从binlog中同步数据。咱们能够经过binlog日志恢复数据。下面就介绍一下开启MySQL binlog日志的过程:

一、登陆MySQL,查看binlog日志的状态
 登陆MySQL后,输入show variables like '%log_bin%';查看到binlog日志为OFF关闭状态;

 

 

 

 

二、开启MySQL binlog日志

使用vi编辑器修改MySQL的my.cnf配置文件
vi /etc/my.cnf
server_id=2 #log日志文件存放位置 log_bin = /var/bin/mysql/mysql-bin binlog_format = ROW expire_logs_days = 30

 

 

 注意:每次服务器(数据库)重启,服务器会调用flush logs;,新建立一个binlog日志

 
进入上面配置的日志存储位置查看日志:
cd  /var/bin/mysql/mysql-bin

 

 数据恢复语法:

恢复语法 恢复命令的语法格式: mysqlbinlog mysql-bin.0000xx | mysql -u用户名 -p密码 数据库名 经常使用参数选项解释: --start-position=780 起始pos点 --stop-position=904 结束pos点 --start-datetime="2019-3-27 12:04:08" 起始时间点 --stop-datetime="2019-3-27 12:49:46" 结束时间点 --database=my_test 指定只恢复my_test数据库(一台主机上每每有多个数据库,只限本地log日志) !!!!Ubuntu我没用熟悉吧 牢记 在mysqlbinlog和mysq前面都要加上sudo!!!! For example 指定pos结束点恢复(部分恢复) 恢复到780节点 sudo mysqlbinlog mysql-bin.000002 --stop-position 780 | sudo mysql -uroot -p my_test

binlog 日志文件转sql

 进入mysql 的安装目录bin 目录执行----》mysql-bin.000011的文件路径

mysqlbinlog  --base64-output=decode-rows -v  mysql-bin.000011 -d db1  > db1.sql      //将row格式的binlog日志文件base64解析后转入文件,-v表明换行展现

 

 

mysqlbinlog  --start-date="2017-08-12 15:00:19" --stop-date="2017-08-12 15:30:19"  mysql-bin.000011 -d db1  > db1.sql      //选择时间范围导出

 

 

 

 

数据恢复:

 http://www.javashuo.com/article/p-ninjtfnf-be.html

相关文章
相关标签/搜索