Linux安装&配置Mysql8

一、通过命令行进行安装

参考

  • 安装

    yum install mysql-community-server
    
  • 启动

    systemctl start mysqld
    # 或者 service mysqld start
    
  • 查看启动状态

    systemctl status mysqld
    # 或者 service mysqld status
    
  • 设置开机自启

    systemctl enable mysqld
    systemctl daemon-reload
    
  • 查看mysql默认密码

    mysql安装完成之后,在/var/log/mysqld.log文件中给root生成了一个默认密码。通过下面的方式找到root默认密码,然后登录mysql进行修改:

    grep 'temporary password' /var/log/mysqld.log
    
  • 登录

    mysql -uroot -p
    
  • 修改登录密码

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'Langkye@123';
    --或者 set password for 'root'@'localhost'=password('TestBicon@123');
    -- update user set password=password("langkye") where user="root";
    
  • 添加远程登录用户

    默认只允许root帐户在本地登录,如果要在其它机器上连接mysql,必须修改root允许远程连接,或者添加一个允许远程连接的帐户。

    修改root用户远程访问权限

    use mysql;
    select host, user from user;
    

    查看表格中 root 用户的 host,默认应该显示的 localhost,只支持本地访问,不允许远程访问。

  • 授权 root 用户的所有权限并设置远程访问

    GRANT ALL ON *.* TO 'root'@'%';
    --或 update user set host='%' where user ='root';
    --或者 grant all privileges on *.* to 'root'@'localhost' ;
    
  • 刷新

    flush privileges;
    --FLUSH PRIVILEGES;
    
  • 重启mysql服务

    service mysql restart
    # service mariadb restart
    

二、通过压缩包进行安装

2.1下载

下载页面

wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz

2.2前戏

  • 将压缩包移到/usr/local/
sudo mv mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz /usr/local/
  • 解压
sudo tar -xvf mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz
  • 重命名
sudo mv mysql-8.0.21-linux-glibc2.12-x86_64 mysql
  • 创建用户组
sudo groupadd mysql
  • 创建用户

    将mysql用户添加的mysql用户组

    -r:表示mysql是系统用户,不可用于登录系统。

    sudo useradd -r -g mysql mysql
    
  • 授权

sudo chown -R mysql /usr/local/mysql
sudo chgrp -R mysql /usr/local/mysql
  • 创建数据存放目录
sudo mkdir -p /data/mysql

2.3配置my.cnf文件

  • 编辑/etc/my.cnf
sudo vim /etc/my.cnf
  • 作如下编辑
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
#symbolic-links=0
explicit_defaults_for_timestamp=true

2.4安装

  • 初始化
    进入bin目录

    cd /usr/local/mysql/bin
    

    执行

    ./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
    

    如果出错./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory,缺少libaio-dev依赖。

    sudo apt-get install libaio-dev  # Ubuntu
    # yum install libaio-devel.x86_64  # CentOS. 这条报错换下面
    # yum -y install numactl # CentOS
    

    再执行初始化,成功!

  • 查看初始秘密

cat /data/mysql/mysql.err
# A temporary password is generated for root@localhost: g4r<jJKt.lZ&
# 用户名:root
# 初始密码:g4r<jJKt.lZ&

2.5启动Mysql服务

  • 将mysql.server放置到/etc/init.d/mysql中
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
  • 重启

  • 启动

service mysql start
  • 查看状态
ps -ef | grep mysql

如图这样,则安装成功了:

2.6修改密码

登陆

mysql -uroot -p初始密码

如果报错:mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory 安装libncurses5

  • ubuntu
sudo apt install libncurses5
  • centos
sudo ln -s /usr/lib64/libtinfo.so.6.1 /usr/lib64/libtinfo.so.5
  • 开启远程访问权限(授权远程连接)
grant all on *.* to 'root'@'%';
alter user user() identified by "langkye";
--ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
--update user set authentication_string='langkye' where user='root';
FLUSH PRIVILEGES;

三、重置密码

  • 编辑/etc/my.cnf文件
vim /etc/my.cnf
  • 在[mysqld]里添加 skip-grant-tables

  • 重启mysql服务,连接mysql无密码登录

  • 使用mysql数据库:use mysql;

  • 清空密码

    use mysql;
    update user set authentication_string='' where user='root';
    
  • 删除[mysqld]里添加 skip-grant-tables

  • 重启mysql服务

  • 无密登陆

  • 修改密码

    ALTER USER root@localhost IDENTIFIED BY "Langkye@123456";
    flush privileges;
    

四、卸载

  • 卸载软件

    yum remove mysql-community-server
    
  • 完成后使用rpm -qa|grep mysql命令查看,如果有查询结果,则使用yum remove 名称清理掉。

  • 再使用命令rpm -qa | grep -i mysql查看,如果有结果使用rpm -e 名称卸载。

  • 删除文件

    rm -rf /var/lib/mysql
    rm /etc/my.cnf
    rm -rf /usr/share/mysql-8.0
    
  • 如果需要重新安装,在安装完成启动之前可以先对mysql目录赋予权限防止异常发生

    chmod -R 777 /var/lib/mysql
    
posted @ 2020-11-18 07:53  LANGKYE#  阅读(300)  评论(0)    收藏  举报