美文网首页python
Centos安装mysql

Centos安装mysql

作者: 有内涵的Google | 来源:发表于2019-03-28 21:50 被阅读0次

    mysql官方安装教程

    在线安装

    1. 检查系统本身是否有预装的mysql

    1.rpm -qa | grep mysql #检查是否安装了mysql
    2.rpm -qa | grep mariadb #检查是否安装了mariadb
    3.rpm -e xxx  #一般使用此命令即可卸载成功
    4.rpm -e --nodeps xxx #卸载不成功时使用此命令强制卸载)
    

    2.安装MySql

    1.wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
    //下载mysql的rpm的包
    2.yum -y install mysql57-community-release-el7-10.noarch.rpm
    3.yum -y install mysql-community-server
    

    3.进入Mysql

    1.生成初始密码,我在这里并没有生成初始密码,所以我直接把vim /etc/my.cnf文件最后面加入skip-grant-tables 保存文件退出, 使用systemctl restart mysqld 重启服务器, 使用下面的命令查看生成的密码;

    grep "password" /var/log/mysqld.log  
    

    再次修改vim /etc/my.cnf, 注释掉skip-grant-tables, 退出免密登录. 不然后面无法修改密码.

    2.登录mysqlmysql -uroot -p

    mysql -uroot -p
    enter your password: 上面获取的初始密码
    

    提示 如果你设置不验证登录只需要mysql回车就好了
    3.修改Mysql的root用户密码

    ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';
    

    提示这里密码遵守mysql的安全策略(大写英文,小写英文,数字,特殊字符),不然会报错的,虽然可以进行更改,但是不建议更改,这样安些 如果要更改的话

    set global validate_password_policy=0;
    set global validate_password_length=6;
    

    4.测试登录

    看密码是否生效(如果你更改了配置文件下的数据,先把skip-grant-tables)用#号注释掉,然后service mysqld restart 对服务进行重启

    mysql -uroot -p 
    >>输入你设置的密码
    

    4.设置Mysql远程登陆 (前提:进入到数据库里面)

    use mysql;
    update user set host='%' where user='root' and host='localhost';
    //这里的%是允许所有的ip地址登录这个服务器的mysql服务器
    flush privileges;
    //刷新权限
    

    然后退出mysql

    firewall-cmd --permanent --add-port=3306/tcp  //防火墙开发3306端口
    >>success//显示成功
    firewall-cmd  --reload
    >>success//显示成功
    

    查看防火墙的状态

    systemctl status firewalld
    

    如果是running就是启动的,如果是dead就是关闭,systemctl start firewalld
    进行启动
    这里有的不支持这个命令需要service iptables status进行查看防火墙的状态.

    5.使用远程连接

    使用软件对mysql进行连接(推荐使用Navicat)这个软件是真的好进行连接

    [本教程参考了] : https://www.jianshu.com/p/3b613d4491bf

    离线安装

    安装依赖

    yum -y install libaio
    

    创建用户和组

    新建mysql用户和组, 用于设置mysql安装目录文件所有者和所属组

    groupadd mysql
    useradd -r -g mysql mysql
    

    :

    • 1.useradd -r 表示mysql用户是系统用户, 不可用于登录系统
    • 2.useradd -g 表示把mysql用户添加到mysql用户组中

    下载mysql安装包

    mysql下载地址

    mysql-download

    当然也可以使用迅雷或者其他方式下载后再上传到服务器

    解压并创建data目录

    • 1.解压到指定目录, 并重命名文件夹
    tar -zxvf mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz
    mv mysql-5.7.32-linux-glibc2.12-x86_64 /usr/local/mysql
    
    • 2.进入mysql目录,并创建tmp, log, data文件夹
    cd /usr/local/mysql
    mkdir tmp log data
    
    • 3.确保mysql下的文件属主都为mysql(下面的命令是在mysql目录下执行的)
    chown -R mysql:mysql /usr/local/mysql/
    

    初始化mysql配置表

    cd /usr/local/mysql/ # 进入到mysql目录
    ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data   # 初始化
    

    --user 启动mysql的用户

    --basedir mysql 的安装目录

    --datadir mysql数据仓库目录

    注意

    初始化完成后, 注意最后一行, 可能不同的版本出现的位置不一样, 它给出了root的初始密码, 后面登录的时候要这个密码

     [Note] A temporary password is generated for root@localhost: Oow7Fi=lb#dO
    

    例如我的初始密码就是Glly__T!=1z4

    我们也可以吧初始化的密码保存到一个临时文件中

    ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data > /tmp/mysql.pwd
    

    开启加密连接

    bin/mysql_ssl_rsa_setup
    

    权限归还

    将mysql/目录下除了data、tmp、log目录的所有文件,改回root用户所有,mysql用户只需作为mysql/data/目录下所有文件的所有者

     cd /usr/local/mysql/
     chown -R root:root ./
     # 将 data tmp 和 log还是给mysql用户
    chown -R mysql:mysql data
    chown -R mysql:mysql tmp
    chown -R mysql:mysql log
    

    开机自启

    • 1.复制mysql.server文件到/etc/init.d/mysqld
     cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
    
    • 2.添加环境变量
    echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile.d/mysql.sh
    
    • 3.刷新配置
    source /etc/profile
    
    • 4.设置开机自启
    chkconfig mysql on 
    service mysql start
    

    更改密码

    使用如下命令更改密码

     mysql --connect-expired-password -uroot -pGlly__T!=1z4 -e "set password for root@localhost = password('123456')"
    

    由于我的系统是centos8.0在更改密码的时候, 会报如下的错误

    mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
    

    需要我们安装依赖

    yum install libncurses*
    

    等待安装完毕, 再次运行

    [root@localhost ~]# mysql --connect-expired-password -uroot -pGlly__T!=1z4 -e "set password for root@localhost = password('123456')"
    mysql: [Warning] Using a password on the command line interface can be insecure.
    

    至此密码修改完成.

    自定义mysql启动参数

    • 1.vim /etc/my.cnf
    [client]
    #password   = your_password
    port        = 3306
    socket      = /tmp/mysql.sock
    
    [mysqld]
    port        = 3306
    basedir = /usr/local/mysql
    socket      = /tmp/mysql.sock
    datadir = /usr/local/mysql/data
    character_set_server = utf8
    collation_server = utf8_general_ci
    
    default_storage_engine = MyISAM
    skip-external-locking
    key_buffer_size = 64M
    max_allowed_packet = 100G
    table_open_cache = 256
    sort_buffer_size = 1M
    net_buffer_length = 4K
    read_buffer_size = 1M
    read_rnd_buffer_size = 256K
    myisam_sort_buffer_size = 16M
    thread_cache_size = 32
    query_cache_size = 32M
    tmp_table_size = 64M
    
    #skip-name-resolve
    max_connections = 500
    max_connect_errors = 100
    open_files_limit = 65535
    
    log-bin=mysql-bin
    binlog_format=mixed
    server-id = 1
    expire_logs_days = 10
    slow_query_log=1
    slow-query-log-file=/usr/local/mysql/log/mysql-slow.log
    long_query_time=3
    #log_queries_not_using_indexes=on
    
    
    innodb_data_home_dir = /usr/local/mysql/data
    innodb_data_file_path = ibdata1:10M:autoextend
    innodb_log_group_home_dir = /usr/local/mysql/data
    innodb_buffer_pool_size = 256M
    innodb_log_file_size = 128M
    innodb_log_buffer_size = 32M
    innodb_flush_log_at_trx_commit = 1
    innodb_lock_wait_timeout = 50
    
    [mysqldump]
    quick
    max_allowed_packet = 500M
    
    [mysql]
    no-auto-rehash
    
    [myisamchk]
    key_buffer_size = 64M
    sort_buffer_size = 1M
    read_buffer = 2M
    write_buffer = 2M
    
    [mysqlhotcopy]
    interactive-timeout
    

    注意

    如果你安装的mysql 不是在/usr/local/mysql下 , 还需要修改/etc/init.d/mysqld文件

    mysqld_pid_file_path=
    if test -z "$basedir"
    then
      basedir=/usr/local/mysql  
      bindir=/usr/local/mysql/bin
      if test -z "$datadir"
      then
        datadir=/usr/local/mysql/data
      fi
      sbindir=/usr/local/mysql/bin
      libexecdir=/usr/local/mysql/bin
    else
    

    大约在62行, 把basedir, datadir, bindir, sbindir,libexecdir , 修改成自己对应的路径

    相关文章

      网友评论

        本文标题:Centos安装mysql

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