• Linux 各种软件的安装-mysql篇


    作为一个长期混迹在windows圈的小白,当拿到一个新的linux服务器时,有点手足无措的赶脚。但是万事开头难嘛,Just Do It!

    下面记录一下自己安装各种软件时遇到的坑。这一篇先讲mysql

    安装环境:系统是 centos7.3 64位

    1:mysql

    通常软件都安装在 /usr/local下面

    #下载

    wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz

    否则只能先通过windows下载,再用winscp传到linux系统了。

    #解压

    tar -zxvf mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz

    #复制解压后的mysql目录

    cp -r mysql-5.6.33-linux-glibc2.5-x86_64 /usr/local/mysql

    #添加用户组

    groupadd mysql

    #添加用户mysql 到用户组mysql

    useradd -g mysql mysql

    #在mysql目录下创建data目录

    mkdir ./data   (不要忘记了有个点)

    #把mysql目录赋给mysql用户

    chown -R mysql:mysql ./

    #安装

    ./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data

    cp support-files/mysql.server /etc/init.d/mysqld

    chmod 755 /etc/init.d/mysqld

    cp support-files/my-default.cnf /etc/my.cnf

    #修改启动脚本

    vi /etc/init.d/mysqld

    下面这几行好像也要在etc/my.cnf里面改?vi /etc/my.cnf     ---20181227留

    #修改项:

    basedir=/usr/local/mysql/

    datadir=/usr/local/mysql/data/

    log-error = /usr/local/mysql/data/error.log

    pid-file = /usr/local/mysql/data/mysql.pid

    user = mysql
    tmpdir = /tmp

    #启动服务

    service mysqld start

    #加入环境变量,编辑 /etc/profile,这样可以在任何地方用mysql命令了

    export PATH=$PATH:/usr/local/mysql/bin

    source /etc/profile

    #测试连接

    ./mysql/bin/mysql -uroot

    #关闭mysql

    service mysqld stop

    #查看运行状态

    service mysqld status

    ------------------------------分割线

    遇到的问题:

    1:MySQL提示:The server quit without updating PID file

    先查看下错误日志,通常是权限问题,或者是已经存在mysqld进程,或者是/etc/my.cnf的data配置节没弄对,或者是打开了selinux,centos系统,默认会开启selinux

    打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled

    但是我遇到了这个问题上面的方法都没解决,后来发现是内存不足导致的。。穷人啊,没招,只好加内存,再重启,问题解决。。

    2:sqlyog连接时,报1130错误,是由于没有给远程连接的用户权限问题

    解决办法:更改 ‘mysql’数据库‘user’表‘host’项,从‘localhost’改成‘%’

    use mysql;
    select 'host' from user where user='root'; 
    update user set host = '%' where user ='root';
    flush privileges; 
    q

    其实这一句可以修改成这样,
    update user set host = '%' where host ='localhost';

    3:sqlyog连接时,修改root密码

    mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
    mysql> FLUSH PRIVILEGES;//记得要这句话,否则如果关闭先前的终端,又会出现原来的错误
    mysql> q

    4:始化mysql数据库提示缺少Data:dumper模块

     FATAL ERROR: please install the following Perl modules before executing /usr/local/mysql/scripts/mysql_install_db:

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

    这篇博文参考了以下link。https://www.cnblogs.com/bookwed/p/5896619.html

    5:com.mysql.jdbc.PacketTooBigException: Packet for query is too large

    原因是mysql的max_allowed_packet设置过小引起的,我一开始设置的是1M,后来改为了20M

    查看目前配置
    show VARIABLES like '%max_allowed_packet%';

    可以编辑my.cnf来修改(windows下my.ini), vi /etc/my.cnf

    在[mysqld]段或者mysql的server配置段进行修改。
    max_allowed_packet = 20M
    如果找不到my.cnf可以通过

    mysql --help | grep my.cnf

    去寻找my.cnf文件.

    6. Can't connect to local MySQL server through socket '***'

    参考 http://aiezu.com/article/mysql_cant_connect_through_socket.html

    解决方案:

      修改“/etc/my.cnf”配置文件,在配置文件中添加“[client]”选项和“[mysql]”选项,并使用这两个选项下的“socket”参数值,与“[mysqld]”选项下的“socket”参数值,指向的socket文件路径完全一致。如下: 

    [mysqld]

    datadir=/usr/local/mysql/data

    socket=/usr/local/mysql/data/mysql.sock

    [client]

    default-character-set=utf8

    socket=/usr/local/mysql/data/mysql.sock

    [mysql]

    default-character-set=utf8

    socket=/usr/local/mysql/data/mysql.sock

    修改完后,重启mysqld服务,即可解决

    7. Installing MySQL system tables..../bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

    yum install -y libaio

    搞定

     8:执行./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data

    报错-bash: ./mysql_install_db: /usr/bin/perl: bad interpreter: No such file or directory

    解决办法:yum -y install perl perl-devel

  • 相关阅读:
    python函数内容
    python读写csv文件
    python正则表达式
    python使用MYSQL数据库
    python简单面试题
    python执行cmd命令
    python详解json模块
    我的自动化测试之路
    测试开发这一年
    招聘测试人员,我在面试什么?
  • 原文地址:https://www.cnblogs.com/marszhw/p/8168721.html
Copyright © 2020-2023  润新知