MySQL管理-创新互联
MySQL 管理
启动及关闭 MySQL 服务器
首先,我们需要通过以下命令来检查MySQL服务器是否启动:
我们提供的服务有:网站设计、成都网站建设、微信公众号开发、网站优化、网站认证、定远ssl等。为上千多家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的定远网站制作公司ps -ef | grep mysqld如果MySql已经启动,以上命令将输出mysql进程列表, 如果mysql未启动,你可以使用以下命令来启动mysql服务器:
root@host# cd /usr/bin./mysqld_safe &如果你想关闭目前运行的 MySQL 服务器, 你可以执行以下命令:
root@host# cd /usr/bin./mysqladmin -u root -p shutdownEnter password: ******MySQL 用户设置
如果你需要添加 MySQL 用户,你只需要在 mysql 数据库中的 user 表添加新用户即可。
以下为添加用户的的实例,用户名为guest,密码为guest123,并授权用户可进行 SELECT, INSERT 和 UPDATE操作权限:
root@host# mysql -u root -pEnter password:*******mysql> use mysql;Database changed mysql> INSERT INTO user (host, user, password, select_priv, insert_priv, update_priv) VALUES ('localhost', 'guest', PASSWORD('guest123'), 'Y', 'Y', 'Y');Query OK, 1 row affected (0.20 sec)mysql> FLUSH PRIVILEGES;Query OK, 1 row affected (0.01 sec)mysql> SELECT host, user, password FROM user WHERE user = 'guest';+-----------+---------+------------------+| host | user | password |+-----------+---------+------------------+| localhost | guest | 6f8c114b58f2ce9e |+-----------+---------+------------------+1 row in set (0.00 sec)在添加用户时,请注意使用MySQL提供的 PASSWORD() 函数来对密码进行加密。 你可以在以上实例看到用户密码加密后为: 6f8c114b58f2ce9e.
注意:在 MySQL5.7 中 user 表的 password 已换成了authentication_string。
注意:在注意需要执行 FLUSH PRIVILEGES 语句。 这个命令执行后会重新载入授权表。
如果你不使用该命令,你就无法使用新创建的用户来连接mysql服务器,除非你重启mysql服务器。
你可以在创建用户时,为用户指定权限,在对应的权限列中,在插入语句中设置为 'Y' 即可,用户权限列表如下:
Select_priv
Insert_priv
Update_priv
Delete_priv
Create_priv
Drop_priv
Reload_priv
Shutdown_priv
Process_priv
File_priv
Grant_priv
References_priv
Index_priv
Alter_priv
另外一种添加用户的方法为通过SQL的 GRANT 命令,你下命令会给指定数据库TUTORIALS添加用户 zara ,密码为 zara123 。
root@host# mysql -u root -p password;Enter password:*******mysql> use mysql;Database changed mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP -> ON TUTORIALS.* -> TO 'zara'@'localhost' -> IDENTIFIED BY 'zara123';以上命令会在mysql数据库中的user表创建一条用户信息记录。
注意: MySQL 的SQL语句以分号 (;) 作为结束标识。
/etc/my.cnf 文件配置
一般情况下,你不需要修改该配置文件,该文件默认配置如下:
[mysqld]datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock[mysql.server]user=mysql basedir=/var/lib[safe_mysqld]err-log=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid在配置文件中,你可以指定不同的错误日志文件存放的目录,一般你不需要改动这些配置。
管理MySQL的命令
以下列出了使用Mysql数据库过程中常用的命令:
USE 数据库名 :
mysql> use RUNOOB;Database changed
选择要操作的Mysql数据库,使用该命令后所有Mysql命令都只针对该数据库。SHOW DATABASES:
mysql> SHOW DATABASES;+--------------------+| Database |+--------------------+| information_schema || RUNOOB || cdcol || mysql || onethink || performance_schema || phpmyadmin || test || wecenter || wordpress |+--------------------+10 rows in set (0.02 sec)
列出 MySQL 数据库管理系统的数据库列表。SHOW TABLES:
mysql> use RUNOOB;Database changed mysql> SHOW TABLES;+------------------+| Tables_in_runoob |+------------------+| employee_tbl || runoob_tbl || tcount_tbl |+------------------+3 rows in set (0.00 sec)
显示指定数据库的所有表,使用该命令前需要使用 use 命令来选择要操作的数据库。SHOW COLUMNS FROM 数据表:
mysql> SHOW COLUMNS FROM runoob_tbl;+-----------------+--------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-----------------+--------------+------+-----+---------+-------+| runoob_id | int(11) | NO | PRI | NULL | || runoob_title | varchar(255) | YES | | NULL | || runoob_author | varchar(255) | YES | | NULL | || submission_date | date | YES | | NULL | |+-----------------+--------------+------+-----+---------+-------+4 rows in set (0.01 sec)
显示数据表的属性,属性类型,主键信息 ,是否为 NULL,默认值等其他信息。SHOW INDEX FROM 数据表:
mysql> SHOW INDEX FROM runoob_tbl;+------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |+------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+| runoob_tbl | 0 | PRIMARY | 1 | runoob_id | A | 2 | NULL | NULL | | BTREE | | |+------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+1 row in set (0.00 sec)
显示数据表的详细索引信息,包括PRIMARY KEY(主键)。SHOW TABLE STATUS LIKE [FROM db_name] [LIKE 'pattern'] \G:
mysql> SHOW TABLE STATUS FROM RUNOOB; # 显示数据库 RUNOOB 中所有表的信息mysql> SHOW TABLE STATUS from RUNOOB LIKE 'runoob%'; # 表名以runoob开头的表的信息mysql> SHOW TABLE STATUS from RUNOOB LIKE 'runoob%'\G; # 加上 \G,查询结果按列打印
该命令将输出Mysql数据库管理系统的性能及统计信息。
Gif 图演示:
MySQL 安装
MySQL PHP 语法
笔记列表
oocarain
ooc***in@163.com
记录 MySQL 学习过程遇到的问题。
系统:win32 位
MySQL 版本:5.7.17-logMySQL 语法对大小写不敏感,但是大写更容易看出。
一、启动关闭MySQL服务
1【开始菜单】搜索 services.msc 打开 windows【服务管理器】,可以在此开启关闭 MySQL 服务。
2 在 cmd 中使用命令:
net start mysql #启动mysql服务net stop mysql #关闭mysql服务遇到net命令无法识别,如下:
这是环境变量没有配置的原因,究竟是哪一个文件的环境变量没有配置呢?
是 C:\windows\system32\ 这个路径下的 net.exe 没有配置环境变量
现切换到这个路径下试一下可不可以使用 net 命令:
在 Powershell 需要使用
.\net stop mysql
关闭服务。
在 cmd 中可以直接使用
net start mysql启动服务。
将c:\windows\system32添加到系统的Path中后:
成功!!!
oocarain
oocarain
ooc***in@163.com
9个月前 (03-06)一条鱼
ili***yun@163.com
参考地址
用 insert 添加用户时,可能会报错:
ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default valuemy-default.ini中有一条语句:
指定了严格模式,为了安全,严格模式禁止通过 insert 这种形式直接修改 mysql 库中的 user 表进行添加新用户
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
将 STRICT_TRANS_TABLES 删掉之后即可使用 insert 添加
一条鱼
一条鱼
ili***yun@163.com
参考地址
5个月前 (06-25)Morrison
982***639@qq.com
参考地址
添加新用户建议 GRANT 命令
一、grant 普通数据用户,查询、插入、更新、删除 数据库中所有表数据的权利。
grant select on testdb.* to common_user@'%'grant insert on testdb.* to common_user@'%'grant update on testdb.* to common_user@'%'grant delete on testdb.* to common_user@'%'或者,用一条 MySQL 命令来替代:
grant select, insert, update, delete on testdb.* to common_user@'%'二、grant 数据库开发人员,创建表、索引、视图、存储过程、函数。。。等权限。
grant 创建、修改、删除 MySQL 数据表结构权限。
grant create on testdb.* to developer@'192.168.0.%';grant alter on testdb.* to developer@'192.168.0.%';grant drop on testdb.* to developer@'192.168.0.%';grant 操作 MySQL 外键权限。
grant references on testdb.* to developer@'192.168.0.%';grant 操作 MySQL 临时表权限。
grant create temporary tables on testdb.* to developer@'192.168.0.%';grant 操作 MySQL 索引权限。
grant index on testdb.* to developer@'192.168.0.%';grant 操作 MySQL 视图、查看视图源代码 权限。
grant create view on testdb.* to developer@'192.168.0.%';grant show view on testdb.* to developer@'192.168.0.%';grant 操作 MySQL 存储过程、函数 权限。
grant create routine on testdb.* to developer@'192.168.0.%'; -- now, can show procedure status grant alter routine on testdb.* to developer@'192.168.0.%'; -- now, you can drop a procedure grant execute on testdb.* to developer@'192.168.0.%';三、grant 普通 DBA 管理某个 MySQL 数据库的权限。
grant all privileges on testdb to dba@'localhost'其中,关键字 privileges 可以省略。
四、grant 高级 DBA 管理 MySQL 中所有数据库的权限。
grant all on *.* to dba@'localhost'五、MySQL grant 权限,分别可以作用在多个层次上。
1. grant 作用在整个 MySQL 服务器上:
grant select on *.* to dba@localhost; -- dba 可以查询 MySQL 中所有数据库中的表。grant all on *.* to dba@localhost; -- dba 可以管理 MySQL 中的所有数据库2. grant 作用在单个数据库上:
grant select on testdb.* to dba@localhost; -- dba 可以查询 testdb 中的表。3. grant 作用在单个数据表上:
grant select, insert, update, delete on testdb.orders to dba@localhost;这里在给一个用户授权多张表时,可以多次执行以上语句。例如:
grant select(user_id,username) on smp.users to mo_user@'%' identified by '123345';grant select on smp.mo_sms to mo_user@'%' identified by '123345';4. grant 作用在表中的列上:
grant select(id, se, rank) on testdb.apache_log to dba@localhost;5. grant 作用在存储过程、函数上:
grant execute on procedure testdb.pr_add to 'dba'@'localhost'grant execute on function testdb.fn_add to 'dba'@'localhost'六、查看 MySQL 用户权限
查看当前用户(自己)权限:
show grants;查看其他 MySQL 用户权限:
show grants for dba@localhost;七、撤销已经赋予给 MySQL 用户权限的权限。
revoke 跟 grant 的语法差不多,只需要把关键字 to 换成 from 即可:
grant all on *.* to dba@localhost;revoke all on *.* from dba@localhost;八、MySQL grant、revoke 用户权限注意事项
1. grant, revoke 用户权限后,该用户只有重新连接 MySQL 数据库,权限才能生效。
2. 如果想让授权的用户,也可以将这些权限 grant 给其他用户,需要选项 grant option
grant select on testdb.* to dba@localhost with grant option;这个特性一般用不到。实际中,数据库权限最好由 DBA 来统一管理。
注意:创建完成后需要执行 FLUSH PRIVILEGES 语句。
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
分享文章:MySQL管理-创新互联
网站路径:http://pwwzsj.com/article/dichso.html