在linux上安装mysql

mysql的安装:https://dev.mysql.com/doc/refman/5.7/en/linux-installation.html  参考手册
下载安装包:
mkdir -p /usr/local/mysql
cd /usr/local/mysql
tar -zxvf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.7.17-linux-glibc2.5-x86_64/* /usr/local/mysql

groupadd mysql
useradd  -r -g mysql -s /bin/false mysql
####useradd -r参数表示mysql用户是系统用户,不可用于登录系统
chown -R mysql:mysql /usr/local/mysql

mkdir -p /home/mysql/mysql3306/data
cd  /home/mysql/mysql3306
mkdir -p logs
mkdir -p data
mkdir -p binlog
mkdir tmp

vi /etc/security/limits.conf 
mysql  soft  nproc  2047
mysql  hard  nproc  16384
mysql  soft  nofile 1024
mysql  hard  nofile 65536

检测冲突:
rpm -qa |grep mariadb
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64

rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
rpm -e --nodeps mariadb-devel-5.5.56-2.el7.x86_64
rpm -e --nodeps mariadb-5.5.56-2.el7.x86_64

cp ./support-files/my-default.cnf /etc/my.cnf 如果有:
编辑my.cnf,无此文件创建:(自定义设置)
一般配置选项 
[mysqld]
basedir = /usr/local/mysql
datadir = /home/mysql/mysql3306/data
port = 3306 
socket = /tmp/mysql.sock 
character-set-server=utf8


初始化:(我们使用5.7版本)如果不是默认的路径,请使用初始参数,初始化
mysqld --defaults-file=/usr/local/mysql/my.cnf --initialize --user=mysql

mysql 5.7
mysqld --initialize --user=mysql --basedir={path}--datadir={datapath}

mysqld --defaults-file=/usr/local/mysql/my.cnf --initialize --user=mysql

mysql 5.6
mysql_install_db --defaults-file=my.cnf --user=mysql --basedir={path}

error.log 里记录生成的密码
记住生成的密码:ho6>/ykSuqkJ

安装:使用ssl
./bin/mysql_ssl_rsa_setup --datadir=/home/mysql/mysql3306/data

设置开机启动:(使用默认目录的情况)
cd /usr/local/mysql/support-files
cp mysql.server /etc/init.d/mysqld
更改mysqld 中datadir 路径
chkconfig --list | grep mysqld
chkconfig --add mysqld

启动数据库:
service mysqld start

启动数据库(手工启动)  参数文件如果不指定,查找路径(/etc/my.cnf /etc/mysql.cnf /usr/local/mysql/etc/my.cnf  ~/.my.cnf)
mysqld --defaults-file=/etc/my.cnf &

mysqld_safe --defaults-file=/usr/local/mysql/my.cnf &

停止数据库(手工停止)  非默认位置的sock,登录时请指定sock文件
mysqladmin -uroot -pgzjpm0330 shutdown  S /u01/mysql3306/data/mysql.sock

使用初始密码;登录:
mysql -uroot -p(登录密码为初始化的时候显示的临时密码)
mysql -uroot -p

设置新密码:(必须设置新密码后才能使用)
SET PASSWORD = PASSWORD('root');
此时mysql只有本地localhost可以访问

mysql -uroot -proot  使用新密码登录
修改可远程访问:
grant all privileges on *.* to'root' @'%' identified by 'root';


创建库及用户及授权:
                mysql> show databases;
        mysql> create database abc;
        mysql> drop database abc;
        mysql> use extmail;        ==> 选择数据库
        mysql> select database();    ==> 查看当前选择的数据库
        mysql> show tables;        ==> 查看当前数据库中的表
        mysql>create user 'yao'@'localhost' identified by 'zll4859291';           ==>只能本地登录
        mysql>CREATE USER 'yao'@'192.168.1.%' IDENDIFIED BY '123456';     ==>只能192.168.1网段的登录
                mysql>CREATE USER 'yao'@'%' IDENTIFIED BY '123456';                   ==>无限制网段的登录
                mysql>grant all on abc.* to 'yao'@'%';   ==> 授权用户yao访问abc库所有的对象
                mysql> grant select on mysql.* to 'yao'@'%' identified by '123456';    创建用户yao无限制网络登录并授权访问mysql库所有的对象
创建表及授权:8.0 版本不允许授权创建用户,8.0版本不允许通过修改mysql.user 表来更新密码,修改成功但无法登录


create user 'admin'@'%' identified by 'admin';
create user 'xtrabk'@'localhost' identified by 'xtrabk';


更改用户密码:(4种方式)
1、set password for root@localhost = password('123');  
2、mysqladmin -u用户名 -p旧密码 password 新密码  
     mysqladmin -uroot -p123456 password 123  

3、use mysql;
    update user set authentication_string=password('123') where user='root' and host='localhost';  
    flush privileges;  

4、ALTER USER 'root'@'localhost' identified by 'root';   ---8.0.* 后的版本取消了password函数
    SET PASSWORD = 'root';

忘记root密码:
my.cnf
配置文件mysqld 中添加--skip-grant-tables
重启数据库。
直接mysql进入命令行:
采用上面的第3种方式更改密码。如何去掉--skip-grant-tables ,重启数据库即可。                    


mysql 8.0 中如果使用更新mysql.user 表的方式更新密码,在用其他方式更改密码会提示失败,必须清空mysql.user 表里authentication_string 字段的内容,才可以重新设置密码
        


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值