Linux 安装mysql数据库和常用建表语句

时间:2021-11-27 01:45:32

tar包安装过程:
mysql下载地址:
https://www.mysql.com/downloads/
进去点击community,然后点击Mysql Community Server
这里写图片描述

如图中1的位置为选择之前版本,根据需要选择自己合适的版本,
2的位置为不同系统下的linux版本,选择完将滚动条拉到最底下,进行下载。

下载好后,将tar包传输到服务器上。

1.解压

#解压
    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

2.添加用户组

#添加用户组
    groupadd mysql
#添加用户mysql 到用户组mysql
    useradd -g mysql mysql

3.安装

cd /usr/local/mysql/
#创建数据文件夹
    mkdir ./data/mysql
#修改文件权限
    chown -R mysql:mysql ./
#安装并指定用户和data文件夹位置
    ./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data/mysql
#复制mysql到服务自动启动里面
    cp support-files/mysql.server /etc/init.d/mysqld
#修改权限为755 也就是root可以执行
    chmod 755 /etc/init.d/mysqld
#复制配置文件到etc下,因为默认启动先去etc下加载配置文件
    cp support-files/my-default.cnf /etc/my.cnf 
#修改启动脚本
    vi /etc/init.d/mysqld 
#修改项:
    basedir=/usr/local/mysql/datadir=/usr/local/mysql/data/mysql 
#启动服务
    service mysqld start 
#测试连接
    ./mysql/bin/mysql -uroot 
#加入环境变量,编辑 /etc/profile,这样可以在任何地方用mysql命令了
    vi /etc/profile
#最末尾添加
    export PATH=$PATH:/usr/local/mysql/bin  
#执行下面命令立即生效
    source /etc/profile
#启动
    mysqlservice mysqld start
#关闭
    mysqlservice mysqld stop
#重新启动
    mysqlservice mysqld restart
#查看运行状态
    service mysqld status

4.问题
安装完成后自行进行root用户密码修改和相关用户配置。

完成后用工具远程连接报错,是由于没有给远程连接的用户权限问题。

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

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

直接授权

GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY ‘youpassword' WITH GRANT OPTION;

5.mysql常用命令

1.创建用户
    格式:CREATE USER 'username'@'host' IDENTIFIED BY 'password';
    例如:CREATE USER 'chun'@'%' IDENTIFIED BY 'chun';

    PS:username - 你将创建的用户名,
    host - 指定该用户在哪个主机上可以登陆,此处的"localhost",是指该用户只能在本地登录,不能在另外一台机器上远程登录,如果想远程登录的话,将"localhost"改为"%",表示在任何一台电脑上都可以登录;也可以指定某台机器可以远程登录;
    password - 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器。

2.给用户授权
    命令:GRANT privileges ON databasename.tablename TO 'username'@'host'
    例如:GRANT privileges ON *.* TO 'chun'@'%';

    PS: privileges - 用户的操作权限,如SELECT , INSERT , UPDATE 等(详细列表见该文最后面).如果要授予所的权限则使用ALL.;databasename - 数据库名,tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示, 如*.*.*

3.设置与更改用户密码
    命令:SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
    例子: SET PASSWORD FOR 'chun'@'%' = PASSWORD("chun");

4.撤销用户权限
    命令: REVOKE privilege ON databasename.tablename FROM 'username'@'host';
    说明: privilege, databasename, tablename - 同授权部分.
    例子: REVOKE SELECT ON mq.* FROM 'chun'@'localhost';

    PS: 假如你在给用户'dog'@'localhost''授权的时候是这样的(或类似的):GRANT SELECT ON test.user TO 'dog'@'localhost', 则在使用REVOKE SELECT ON *.* FROM 'dog'@'localhost';命令并不能撤销该用户对test数据库中user表的SELECT 操作.相反,如果授权使用的是GRANT SELECT ON *.* TO 'dog'@'localhost';则REVOKE SELECT ON test.user FROM 'dog'@'localhost';命令也不能撤销该用户对test数据库中user表的Select 权限.

    具体信息可以用命令SHOW GRANTS FOR 'dog'@'localhost'; 查看.

5.删除用户
    命令: DROP USER 'username'@'host';

6.查看用户的授权
    mysql> show grants for dog@localhost;
    PS:GRANT USAGE:mysql usage权限就是空权限,默认create user的权限,只能连库,啥也不能干
7.数据库的创建和销毁
    创建:create database 数据库名;
    例如:create database mytest;
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | CARDGAME           |
    | mysql              |
    | mytest             |
    | performance_schema |
    | test               |
    +--------------------+
    销毁:drop atabase 数据库名;
    例如:drop database mytest;
    mysql> flush privileges;
8.创建数据库表和删除表
    创建表:
        use 数据库名;
        create table tb_dept( Id int primary key auto_increment, Name varchar(18),description varchar(100));    
        mysql> show tables;
        +-------------------+
        | Tables_in_mystest |
        +-------------------+
        | tb_dept           |
        +-------------------+
        1 row in set (0.00 sec)
    删除表:drop table 表名;
            例如:drop table tb_dept;
9.给表添加索引:
    1.添加PRIMARY KEY(主键索引) 
        mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 
    2.添加UNIQUE(唯一索引) 
        mysql>ALTER TABLE `table_name` ADD UNIQUE (`column`) 
    3.添加INDEX(普通索引) 
        mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column` ) 
    4.添加FULLTEXT(全文索引) 
        mysql>ALTER TABLE `table_name` ADD FULLTEXT ( `column`) 
    5.添加多列索引 
        mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )