zoukankan      html  css  js  c++  java
  • Linux下MySQL安装详解

    最近安装MySql 折腾了很久 ,安装了两次遇到问题都不一样。而且同样的问题可能今天安装好了,下次安装不好。很多问题和实际环境有很大关系,这里作为总结,以备后阅,作为参考。

    1、安装环境和准备 :

              a、安装环境:我安装的系统环境是Linux.5.4.rhel-server-5.4-i386-dvd.iso ,我用yum命令升级过的。

              b、准备MySQL服务端和客户端软件,我的版本是:

                    MySQL-server-5.5.16-1.rhel5.i386.rpm

                    MySQL-client-5.5.16-1.rhel4.i386.rpm   rpm格式的是编译过的,您也可以下源码安装,

                    官方下载地址:http://www.mysql.com/downloads/

    2、安装:

             a、用rz命令上传到你准备好的目录,我是上传到了/mydata/webserver/testdb/下;

             b、在mydata/webserver/testdb/目录下,用 rpm  -ivh  MySQL-server-5.5.16-1.rhel5.i386.rpm ,

                   如果成功的话会有两个进度条,然后会有提示, 仔细查看安装完后的显示内容,里面会有一

                    些想要的信息,比如启动关闭命令目录,日志目录等。

             c、用命令rpm -ivh  MySQL-client-5.5.16-1.rhel4.i386.rpm 安装客户端,一样会显示两个进度条。

                  如果没什么异常error的话就是安装成功了。

             d、用命令 cd /  进入到根目录下 执行命令 find  -name  mysql  ,等完成搜索后可以看到如下mysql目录

                   ./var/lib/mysql                     这个目录是数据库的数据文件
                   ./var/lib/mysql/mysql           这个表示mysql这个库
                   ./var/lock/subsys/mysql      这个文件是空的,配置用不到
                  ./etc/rc.d/init.d/mysql           启动脚本
                  ./usr/share/mysql                这个目录里面放了很多工具 这里的mysql.server
                  ./usr/lib/mysql                      这里是一些linux编译好的.so库文件,别去动它
                  ./usr/bin/mysql                     这个是mysql客户端登录启动脚本

    4、操作数据库:

             a、在当前目录下执行命令 netstat  -ant查看端口是否有3306,或者ps  -Af查看是否有mysql进程,

                   如果有,说明已经启动了。

                   如果数据库没启动,进入目录 /usr/share/mysql  目录,执行命令 mysql.server start 启动数据库。

             b、进入/usr/bin/ 目录下,执行mysql -u root -p   默认数据库没有密码,如果正常连接就可以看到

                   Welcome to the MySQL monitor.  Commands end with ; or \g.
                   Your MySQL connection id is 17
                   Server version: 5.5.16-log MySQL Community Server (GPL)

                   Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

                   Oracle is a registered trademark of Oracle Corporation and/or its
                   affiliates. Other names may be trademarks of their respective
                  owners.

                  Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

                  mysql>

             c、输入mysql客户端的命令 show databases,会看到当前数据库;

                  输入use  mysql,然后输入show tables  ,会看到mysql数据库的表;

                  输入select user ,password ,host from user会看到当前数据库用户信息;

                  输入 update user set password=PASSWORD("xxxxxx") where user="root"; 修改root用户密码;

                  创建数据库 create database mydatabase default character set utf8;  这里为了减少以后的麻烦,

                  设置字符集utf-8。

            d、创建新用户并授权,类似如下语句;

         grant select,insert,update,delete on *.* to test1@"%" Identified by "abc";

         grant select,insert,update,delete,create routine,execute on admin.* to sa@"localhost";

         grant all on *.* to root@"%" Identified by "abc#123";

         flush privileges;  授权完了一定要执行这个语句。

         查看某个用户的权限  show grants for sa@localhost;

         查看mysql连接进程  SHOW PROCESSLIST

         删除用户  DELETE FROM user WHERE User="sa" and Host="%";

         退出 quit;

    3、修改数据文件路径 :

            a、进入/usr/share/mysql  执行mysql.server  stop   停止数据库服务

            b、进入到/var/lib/目录下,mv mysql   mysql.bak 作为备份,

                 执行命令 cp mysql.bak  /mytest/data       /mytest/data  目录是我提前准备好的路径

                 执行mv mysql.bak mysql  。

            c、进入目录 /usr/share/mysql ,执行命令cp my-medium.cnf   /etc    

                 然后执行命令 mv my-medium.cnf my.cnf   这里我们这么做是因为默认rpm安装的没有my.cnf

                 文件,拷贝my-medium.cnf 文件修改后做my.cnf配置文件。

            d、然后我们编my.cnf文件  vi my.cnf

                 在[mysqld] 下

                 datadir         = /mytest/data/mysql   

                #socket         = /var/lib/mysql/mysql.sock    注释掉这个
                 socket          = /mytest/data/mysql/mysql.sock   添加

                 在[client] 下

                #socket        = /var/lib/mysql/mysql.sock 注释掉这个
                  socket        = /mytest/data/mysql/mysql.sock 添加

                 执行wq保存。

            e、重启数据库 进入目录 /usr/share/mysql 目录,执行命令 mysql.server start 启动数据库。如果启动失败出现

                 Starting MySQL...The server quit without updating PID file (/alidata/db/mysql/testServer.pid).[失败]  

                 类似于这样的错误, 请检查你的配置是否正确,尤其是配置的路径。

      4、卸载、重装

            a、这一步是我们不希望出现的,但是事实上很多时候难以保证,liunx下如果不小心删除一个文件,

                 那找回来是很难的,所以这里准备了重装步骤。

           b、用 yum remove MySQL-server-5.5.16-1.rhel5.i386.rpm 或者

                      rpm -e MySQL-server-5.5.16-1.rhel5.i386.rpm 卸载 

                 然后手动删除 find 找到的所有mysql文件目录。重新执行安装步骤;如果还报类似于已经安装的问题。

                那我们用强制覆盖安装,先看参数

                --nodeps:       不考虑相依属性的关系,强制安装下去;
                 --replacepkgs:如果之前安装过这个套件,您想覆盖这个套件,那么不需要反安
                                          装后再安装,可以直接加--replacepkgs强制覆盖;
                  --replacefiles:如果这个套件安装完毕,曾经被您修改过文件,就是安装过程中
                                          会出现confilcting files的话,可以直接以--replacefiles覆盖掉这种文件。

                  我们安装用  rpm -ivh   --replacepkgs  MySQL-server-5.5.16-1.rhel5.i386.rpm  这个命令,覆盖安装,

                  然后重新上面讲过的 操作直到你安装配置成功。

    5、联系本人

                     对linux系统不是很了解的初学者,配置起来是有点困扰,如果按照我所讲述的安装不成功的话,

               可能是粗心所致,也可能跟环境有关,建议仔细检查安装过程及配置, 自己搞定,如果实在搞不

                定的话可以联系本人qq:236788273,可以给予 最大努力的帮助。

            

                           

                     

  • 相关阅读:
    记一次动态依赖包版本过高解决过程
    Centos8更改国内源阿里云
    记一次vs2019安装GDB实现Cmake远程linux调试
    Tu te prends pour qui?
    中国高等教育是个啥:官僚主义的垄断黑洞
    关闭ThinkPad HDD APS Logging Service
    python Tlinter按钮接收多个参数
    第一章
    IE7的一个边界BUG
    让LumaQQ.NET支持接收群自定义表情和贴图
  • 原文地址:https://www.cnblogs.com/alaricblog/p/3264648.html
Copyright © 2011-2022 走看看