美文网首页
linux下安装MySQL

linux下安装MySQL

作者: 接着奏乐接着舞S | 来源:发表于2019-02-22 18:01 被阅读0次

    操作系统:centos 7.2
    MySQL版本:mysql-5.6.36

    1、卸载当前已经安装的mysql

    检查已经安装的mysql

    rpm -qa | grep mysql
    rpm -qa | grep mariadb

    卸载

    rpm -e xxxx
    rpm -e --nodeps xxxxxx

    2. 检查mysql组和用户是否存在,如无创建。

    cat /etc/group | grep mysql
    cat /etc/passwd | grep mysql

    新建组

    groupadd mysql

    新建用户

    useradd -r -g mysql mysql
    -r 是表示该用户是系统用户,不能用于登陆系统。

    3、安装mysql

    tar zxvf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
    mv mysql-5.6.36-linux-glibc2.5-x86_64/ /usr/local/mysql

    新建mysql的数据目录

    mkdir /mnt/toolbox/mysql/

    赋予mysql用户的数据目录访问权限

    chown mysql /mnt/toolbox/mysql/

    cd /usr/local/mysql/scripts
    ./mysql_install_db --basedir=/usr/local/mysql --datadir=/mnt/toolbox/mysql --user=mysql
    (5.7.17命令如下:
    /usr/local/mysql/bin/mysqld --initialize --user=mysql
    /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql/ --datadir=/opt/toolbox/mysql/

    cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
    vi /etc/my.cnf

    在[mysqld]后增加下面这句,用于忽略表名的大小写

    lower_case_table_names=1

    在[mysqld]后增加下面这句,用于解决中文乱码问题

    character_set_server=utf8

    mysql配置后面会贴出来
    将mysql加入到系统启动中。

    cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
    vi /etc/init.d/mysql 添加以下内容
    basedir = /usr/local/mysql
    datadir = /mnt/toolbox/mysql

    添加到系统启动并设置mysql自动启动
    chkconfig --add mysql
    chkconfig mysql on

    启动mysql

    service mysql start

    修改root密码

    vi /etc/my.cnf
    在[mysqld]下面增加一行
    skip-grant-tables
    重启MySQL
    service mysql restart
    登录mysql 修改root 密码
    /usr/local/mysql/bin/mysql -u root
    use mysql
    update user set password=password('bonatone') where user='root';
    flush privileges;
    exit

    将刚才加上去的skip-grant-tables删掉 ,再重启mysql

    创建mysql数据库

    create database test default character set utf8 collate utf8_general_ci;

    创建用户

    create user 'dsy'@'%' identified by 'dsy';

    给用户分配权限

    grant all on test.* to dsy;
    grant all on test.* to dsy@'%' identified by 'dsy';
    grant all on test.* to dsy@'localhost' identified by 'dsy';
    flush privileges;

    检查数据库编码格式

    show variables like "%char%";
    SET character_set_server='utf8';
    flush privileges;

    让mysql能执行函数:用root登陆执行下面代码。可以开放触发器权限

    SET GLOBAL log_bin_trust_function_creators = 1;
    flush privileges;

    至此,mysql已经安装完成.

    4、安装中可能会遇到的问题及解决办法:

    1、mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.

    文件权限问题
    解决方法:

    mkdir /var/log/mariadb
    touch /var/log/mariadb/mariadb.log
    chown -R mysql:mysql /var/log/mariadb/

    2、[ERROR] SSL error: Unable to get private key from 'server-key.pem'
    find / -name server-key.pem

    解决方法:

    chown -R mysql:mysql /var/lib/mysql/

    3、2017-11-08T09:30:33.168222Z 0 [ERROR] Can't start server: Bind on TCP/IP port: Address already in use
    2017-11-08T09:30:33.168225Z 0 [ERROR] Do you already have another mysqld server running on port: 3306 ?
    2017-11-08T09:30:33.168230Z 0 [ERROR] Aborting

    端口占用错误
    解决方法:

    关闭占用的端口即可

    4、/usr/local/mysql/bin/mysqld: Can't create/write to file '/var/run/mariadb/mariadb.pid' (Errcode: 2 - No such file or directory)

    没有创建该目录和权限
    解决方法:

    mkdir /var/run/mariadb/
    chown -R mysql:mysql /var/run/mariadb/

    5、Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

    mysql.sock问题(解决方法很多,这只是其中一个)这是可以由于系统默认的文件位置和文件位置不一致,解决办法找到文件创建软链接
    解决方法:

    find / -name mysql.sock
    ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

    相关文章

      网友评论

          本文标题:linux下安装MySQL

          本文链接:https://www.haomeiwen.com/subject/ohzeyqtx.html