环境准备

1、检查是否已经安装过mysql,执行命令

[root@localhost /]# rpm -qa | grep mysql

从执行结果,可以看出我们已经安装了mysql-libs-5.1.73-5.el6_6.x86_64,执行删除命令

[root@localhost /]# rpm -e --nodeps mysql-libs-5.1.73-5.el6_6.x86_64

再次执行查询命令,查看是否删除

[root@localhost /]# rpm -qa | grep mysql

2、查询所有Mysql对应的文件夹

[root@localhost /]# whereis mysql

mysql: /usr/bin/mysql /usr/include/mysql

[root@localhost lib]# find / -name mysql/data/mysql/data/mysql/mysql

删除相关目录或文件

[root@localhost /]#  rm -rf /usr/bin/mysql /usr/include/mysql /data/mysql /data/mysql/mysql

验证是否删除完毕

[root@localhost /]# whereis mysql

mysql:

[root@localhost /]# find / -name mysql

[root@localhost /]#

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

[root@localhost /]# cat /etc/group | grep mysql

[root@localhost /]# cat /etc/passwd |grep mysql

[root@localhost /]# groupadd mysql

[root@localhost /]# useradd -r -g mysql mysql

[root@localhost /]#

4、从官网下载是用于Linux的Mysql安装包

下载命令:

[root@localhost /]#  wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

也可以直接到 mysql官网 选择对应版本进行下载。

二 安装Mysql

1、在执行wget命令的目录下或你的上传目录下找到Mysql安装包:mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
执行解压命令:

[root@localhost /]#  tar xzvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

[root@localhost /]# ls

mysql-5.7.24-linux-glibc2.12-x86_64

mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

解压完成后,可以看到当前目录下多了一个解压文件,移动该文件到/usr/local/下,并将文件夹名称修改为mysql

如果/usr/local/下已经存在mysql,请将已存在mysql文件修改为其他名称,否则后续步骤可能无法正确进行。

执行命令如下:

[root@localhost /]# mv mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/

[root@localhost /]# cd /usr/local/

[root@localhost /]# mv mysql-5.7.24-linux-glibc2.12-x86_64 mysql

如果/usr/local/下不存在mysql文件夹,直接执行如下命令,也可达到上述效果。

[root@localhost /]# mv mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/mysql

2、在/usr/local/mysql目录下创建data目录

[root@localhost /]# mkdir /usr/local/mysql/data

3、更改mysql目录下所有的目录及文件夹所属的用户组和用户,以及权限

[root@localhost /]# chown -R mysql:mysql /usr/local/mysql

[root@localhost /]# chmod -R 755 /usr/local/mysql

4、编译安装并初始化mysql,务必记住初始化输出日志末尾的密码(数据库管理员临时密码)

[root@localhost /]# cd /usr/local/mysql/bin

[root@localhost bin]# ./mysqld --defaults-file=/mysql/3306/my.cnf --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

补充说明:

第4步时,可能会出现错误:

出现该问题首先检查该链接库文件有没有安装使用 命令进行核查

[root@localhost bin]# rpm -qa|grep libaio

[root@localhost bin]#

运行命令后发现系统中无该链接库文件

[root@localhost bin]#  yum install  libaio-devel.x86_64

安装成功后,继续运行数据库的初始化命令,此时可能会出现如下错误:

执行如下命令后:

[root@localhost bin]#  yum -y install numactl

执行无误之后,再重新执行第4步初始化命令,无误之后再进行第5步操作!

5、运行初始化命令成功后,输出日志如下:

记录日志最末尾位置root@localhost:后的字符串,此字符串为mysql管理员临时登录密码。

6、编辑配置文件my.cnf,添加配置如下

[root@localhost bin]#  vi /etc/my.cnf

[mysqld]

datadir=/usr/local/mysql/data

port=3306

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

symbolic-links=0

max_connections=600

innodb_file_per_table=1

lower_case_table_names=1

character_set_server=utf8

lower_case_table_names:是否区分大小写,1表示存储时表名为小写,操作时不区分大小写;0表示区分大小写;不能动态设置,修改后,必须重启才能生效:
character_set_server:设置数据库默认字符集,如果不设置默认为latin1
innodb_file_per_table:是否将每个表的数据单独存储,1表示单独存储;0表示关闭独立表空间,可以通过查看数据目录,查看文件结构的区别;

7、测试启动mysql服务器

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

显示如下结果,说明数据库安装并可以正常启动

启动服务

service mysqld start

异常情况

如果出现如下提示信息

Starting MySQL... ERROR! The server quit without updating PID file

查看是否存在mysql和mysqld的服务,如果存在,则结束进程,再重新执行启动命令

#查询服务

ps -ef|grep mysql | grep -v grep

ps -ef|grep mysqld | grep -v grep

#结束进程

kill -9 PID

#启动服务

/usr/local/mysql/support-files/mysql.server start

MySQL错误ERROR 2002 (HY000): Can't connect to local MySQL server through socket

解决办法

http://www.zzvips.com/article/59979.html

Starting MySQL... ERROR! The server quit without updating PID file (/opt/app/rms_fg/mysql/data/bjtn-test183-81.pid).

解决办法:

如果是单mysql服务,可能是当前存在mysql服务,kill在重新启动

如果是启动多个mysql服务,需要修改my.cnf配置的socket=/opt/app/rms_fg/mysql/mysql.sock指定为不同的文件路径

8、添加软连接,并重启mysql服务

[root@localhost /]#  ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

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

[root@localhost /]#  service mysql restart

9、登录mysql,修改密码(密码为步骤5生成的临时密码)

[root@localhost /]#  mysql -u root -pEnter password:

mysql>set password for root@localhost = password('yourpass');

注意:输入密码时,Enter password 后面不会有任何显示,此时实际是输入成功的,输入完密码后直接回车即可。或使用:mysql -u root -p 密码 ,回车后,即可直接进入数据库

10、修改默认密码

mysql>alter user 'root'@'localhost' identified by 'maap';

11、开放远程连接

mysql>use mysql;

msyql>update user set user.Host='%' where user.User='root';

mysql>flush privileges;

12、设置开机自动启动

1、将服务文件拷贝到init.d下,并重命名为mysql[root@localhost /]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld2、赋予可执行权限[root@localhost /]# chmod +x /etc/init.d/mysqld3、添加服务[root@localhost /]# chkconfig --add mysqld4、显示服务列表[root@localhost /]# chkconfig --list

13、初始化密码错误

--initialize specified but the data directory has files in it. Aborting

原因是你已经进行了数据库初始化因为mysql在进行初始化的时候已经自动创建了一个root用户

1找到配置文件的数据目录

[root@server4 mysql]# vim /etc/my.cnf

2 找到数据库的目录将该目录进行备份,
mv data data_bac

重新初始化 就好了

14、 【MySQL】initialize specified but the data directory has files in it. Aborting

我们在安装mysql的时候可能会遇到这个问题:

是不是执行了这个命令呢?

mysqld --initialize --user=mysql

报这个错误的原因是因为你的mysql数据库已经进行初始化了,所以不能用这种方式再进行初始化用户了,因为mysql在初始化的时候会自动创建一个root用户的。

这个时候我们应该怎么办呢?

1、找到数据库目录

我们可以在mysql的配置文件中找到数据库的目录:

vi /etc/my.cnf

在其中我们可以找到datadir这个配置:

这里配置的就是我们的mysql数据库的目录

2、移动(备份)数据库文件

首先要保证mysql处于停止状态,然后

cd /var/lib

mv mysql mysql_bak

我们这里是把mysql文件夹重命名成了mysql_bak,然后我们就可以执行初始化用户的语句了:

mysqld --initialize --user=mysql

然后我们可以启动数据库看看能不能用这个账户登陆了。

其他方法

移动了数据库文件之后,我们可以清理一下日志文件:

echo ''->/var/log/mysqld.log

然后重新启动mysql的服务:

service mysqld start

这个时候会在日志中看到数据库初始化时候创建的root用户和密码:

最新文章

  1. 如何给frame标签的src属性以及a标签的href属性自动设值
  2. [转] Windows下编译OpenSSL
  3. Linux命令学习总结:date命令
  4. MyEclipse10安装Svn插件的几种方法
  5. CORS Cookie,和nodejs中的具体实现
  6. 2014 Super Training #1 C Ice-sugar Gourd 模拟,扫描线
  7. jQuery停止动画和判断是否处于动画状态
  8. UVA 100 The 3*n+1 problem
  9. line-height:150%和line-height:1.5的区别
  10. 一些xcode5.1创建的工程在xcode6.0下不能编译的问题
  11. devi into python 笔记(三)callable getattr lambda表达式
  12. windows平台HTTP代理server搭建(CCproxy)
  13. linux下emacs安装
  14. Vim 命令 (转)
  15. JavaScript ES6 Arrow Functions(箭头函数)
  16. Java多线程系列3 synchronized 关键词
  17. 在手机的浏览器上通过连接打开App
  18. 关于servelet入门介绍
  19. Hibernate 的Configuration、sessionFactory和session和transaction对象解释
  20. 网页CSS中*{margin:0; padding:0;}有什么用

热门文章

  1. C# Post调用接口并传递json参数
  2. python列表循环中删除元素
  3. css 网页置灰
  4. 超级详细的Vue安装与配置教程
  5. PyCharm如何实现控制台换行显示
  6. 第八章用matplotlib、seaborn、pyecharts绘制散点图
  7. Object.assign() 方法浅析
  8. 模拟ATM系统 —— 用户注册、登录和用户操作页设计 、查询账号、退出账号功能
  9. idea主题插件 ->Atom Material File Icons
  10. Delphi 自定义窗体类名