惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Palo Alto Networks Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
C
CERT Recently Published Vulnerability Notes
C
Cybersecurity and Infrastructure Security Agency CISA
S
Schneier on Security
S
Securelist
酷 壳 – CoolShell
酷 壳 – CoolShell
C
CXSECURITY Database RSS Feed - CXSecurity.com
Cyberwarzone
Cyberwarzone
Apple Machine Learning Research
Apple Machine Learning Research
S
SegmentFault 最新的问题
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
GbyAI
GbyAI
Security Latest
Security Latest
Last Week in AI
Last Week in AI
Microsoft Security Blog
Microsoft Security Blog
云风的 BLOG
云风的 BLOG
Recorded Future
Recorded Future
Webroot Blog
Webroot Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
TaoSecurity Blog
TaoSecurity Blog
C
Cisco Blogs
博客园 - 【当耐特】
Blog — PlanetScale
Blog — PlanetScale
Hugging Face - Blog
Hugging Face - Blog
B
Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Attack and Defense Labs
Attack and Defense Labs
The Last Watchdog
The Last Watchdog
U
Unit 42
阮一峰的网络日志
阮一峰的网络日志
Project Zero
Project Zero
WordPress大学
WordPress大学
L
LINUX DO - 最新话题
F
Fortinet All Blogs
L
LINUX DO - 热门话题
PCI Perspectives
PCI Perspectives
Simon Willison's Weblog
Simon Willison's Weblog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
MongoDB | Blog
MongoDB | Blog
Latest news
Latest news
P
Proofpoint News Feed
T
Threat Research - Cisco Blogs
The Hacker News
The Hacker News
爱范儿
爱范儿
O
OpenAI News
J
Java Code Geeks
T
The Exploit Database - CXSecurity.com
H
Hackread – Cybersecurity News, Data Breaches, AI and More

博客园 - 周伟

域名解析文件hosts文件是什么?如何修改hosts文件? PowerDesigner 使用心得 实现TOMCAT服务下一个ip绑定多域名绑定的方法 CSV扩展类 C++导入导出CSV文件 struct+vector实现树结构 WebService 随写 Linux下两种自动启动Tomcat的方法 linux自动启动mysql LINUX下mysql的大小写区分设置 Jdom使用指南 vector+struct在数据接口中的应用 UML用例中使用和扩展意义 枚举和字符串互转 单件模式的C++标准实现 设计模式 Add Crash Reporting to Your Applications with the CrashRpt Library 设计模式——单键模式(singleton)C++实现 Singleton的C++实现 及相关问题
mysql相关文章收集
周伟 · 2009-06-20 · via 博客园 - 周伟

http://ricoss.com/2009/05/mysql-begin.html

http://www.chinaunix.net/jh/17/647534.html

http://www.dwww.cn/news/2007-10/200710191711245801.shtml

要想从命令行启动mysqld服务器,你应当启动控制台窗口(或“DOS window”)并输入命令:

C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld

根据系统中MySQL安装位置的不同,前面的例子中使用的路径也不同。

在非NT版本的Windows中,在后台启动mysqld。也就是,服务器启动后,你应当可以看见后面的命令提示。如果你用该方法在Windows NT、2000、XP或2003中启动服务器,服务器则在前台运行,在服务器退出前,不会出现命令提示。因此,当服务器运行时,应当打开另一个控制台窗口来运行客户端程序。

下述命令可以停止MySQL服务器:

C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqladmin -u root shutdown

该命令调用MySQL管理工具mysqladmin连接服务器并告知它关闭服务。该命令使用MySQL root用户连接,这是MySQL权限系统中的默认管理账户。请注意MySQL权限系统中的用户完全独立于Windows下的登录用户。

如果mysqld不能启动,检查错误日志看看服务器是否写入了显示问题原因的任何消息。错误日志位于C:\Program Files\MySQL\MySQL Server 5.1\data目录中。是带后缀.err的文件。还可以尝试将服务器启动为mysqld --console;此时,可以从窗口中获得一些有用的信息,可以帮助解决问题。

最后选项是用--standalone --debug启动mysqld。此时,mysqld 写入日志文件C:\mysqld.trace,应当包含mysqld不启动的原因。

使用mysqld --verbose --help显示mysqld的所有选项。

MySql数据库是中小型网站后台数据库的首选,因为它对非商业应用是免费的.网站开发者可以搭建一个"Linux+Apache+PHP+MySql" 平台,这是一个最省钱的高效平台.在使用MySql进行开发时,MySql自带的文档对于新手来说是份很好的参考资料.本文是我在使用MySql中的小小心得。
当前一般用户的开发环境多是Windows或Linux,用户可以到http://www.mysql.com下载相关版本进行安装,在 windows中MySql以服务形式存在,在使用前应确保此服务已经启动,未启动可用net start mysql命令启动。而Linux中启动时可用“/etc/rc.d/init.d/mysqld start"命令,注意启动者应具有管理员权限。
刚安装好的MySql包含一个含空密码的root帐户和一个匿名帐户,这是很大的安全隐患,对于一些重要的应用我们应将安全性尽可能提高,在这里应把匿名帐户删除、 root帐户设置密码,可用如下命令进行:
use mysql;
delete from User where User="";
update User set Password=PASSWORD('newpassword') where User='root';
如果要对用户所用的登录终端进行限制,可以更新User表中相应用户的Host字段,在进行了以上更改后应重新启动数据库服务,此时登录时可用如下类似命令:
mysql -uroot -p;
mysql -uroot -pnewpassword;
mysql mydb -uroot -p;
mysql mydb -uroot -pnewpassword;
上面命令参数是常用参数的一部分,详细情况可参考文档。此处的mydb是要登录的数据库的名称。
在进行开发和实际应用中,用户不应该只用root用户进行连接数据库,虽然使用root用户进行测试时很方便,但会给系统带来重大安全隐患,也不利于管理技术的提高。我们给一个应用中使用的用户赋予最恰当的数据库权限。如一个只进行数据插入的用户不应赋予其删除数据的权限。MySql的用户管理是通过 User表来实现的,添加新用户常用的方法有两个,一是在User表插入相应的数据行,同时设置相应的权限;二是通过GRANT命令创建具有某种权限的用户。其中GRANT的常用用法如下:
grant all on mydb.* to NewUserName@HostName identified by "password" ;
grant usage on *.* to NewUserName@HostName identified by "password";
grant select,insert,update on mydb.* to NewUserName@HostName identified by "password";
grant update,delete on mydb.TestTable to NewUserName@HostName identified by "password";
若要给此用户赋予他在相应对象上的权限的管理能力,可在GRANT后面添加WITH GRANT OPTION选项。而对于用插入User表添加的用户,Password字段应用PASSWORD 函数进行更新加密,以防不轨之人窃看密码。对于那些已经不用的用户应给予清除,权限过界的用户应及时回收权限,回收权限可以通过更新User表相应字段,也可以使用REVOKE操作。
下面给出本人从其它资料(www.cn-java.com)获得的对常用权限的解释:
全局管理权限:
FILE: 在MySQL服务器上读写文件。
PROCESS: 显示或杀死属于其它用户的服务线程。
RELOAD: 重载访问控制表,刷新日志等。
SHUTDOWN: 关闭MySQL服务。
数据库/数据表/数据列权限:
ALTER: 修改已存在的数据表(例如增加/删除列)和索引。
CREATE: 建立新的数据库或数据表。
DELETE: 删除表的记录。
DROP: 删除数据表或数据库。
INDEX: 建立或删除索引。
INSERT: 增加表的记录。
SELECT: 显示/搜索表的记录。
UPDATE: 修改表中已存在的记录。
特别的权限:
ALL: 允许做任何事(和root一样)。
USAGE: 只允许登录--其它什么也不允许做。

最后给出本人在RedHat9.0下的MySql操作演示:
选用数据库的root用户登录
[weiwen@weiwenlinux]$mysql -uroot -p
Enter password:MyPassword
mysql>create database mydb;
Query OK, 1 row affected (0.02 sec)
mysql>use mydb;
Database changed
mysql>create table TestTable(Id int aut_increment primary key,
UserName varchar(16) not null,
Address varchar(255));
Query OK, 0 rows affected (0.02 sec)
mysql>grant all on mydb.* to test@localhost identified by "test";
Query OK, 0 rows affected (0.01 sec)
mysql>quit
Bye
[weiwen@weiwenlinux]$mysql mydb -utest -ptest

其中test.sql是用vi编辑好的SQL脚本,其内容为:
Insert into TestTable(UserName,Address)values('Tom','shanghai');
Insert into TestTable(UserName,Address)values('John','beijing');
select * from TestTable;
运行已经编辑好的SQL脚本可以用source filename 或 . filename。
以上只是对新手的简单练习,要成为一个数据库好手,当以孜孜不倦地追求知识,不断地思考、尝试、再思考。

只是linux下mysql编译安装的和常用命令的笔记, 作一下分享.

mysql 5.0.67的编译安装
1. 添加用户mysql, 如果不存在.

2. 解压mysql源码包, 可以先查看configure选项含义:
# ./configure –help
常用的安装选项如:
# ./configure –prefix=/opt/mysql-5.0.67-bin –with-charset=utf8 –with-collation=utf8_general_ci –with-extra-charsets=latin1
接着
# make
# make install

另外提几个configure选项:
–enable-thread-safe-client   // 编译线程安全版的客户端库
–without-debug   //关闭debug功能
–localstatedir=/home/mysql/data  //设定数据库文件目录

为了便于使用, 可以把mysql的bin目录加到path环境变量中.

接着拷贝my.cnf:
# cp support-files/my-medium.cnf /etc/my.cnf
对于my.cnf各项的含义, 可参考My.cnf配置选项, 该文摘自<MySQL5权威指南 3rd>.

接着
# mysql_install_db –user=mysql // 初始化数据库
# mysqld_safe –user=mysql &  //启动mysql

3. 设置随机自动运行
用编辑器打开/etc/rc.local文件,在exit 0前面加上,/opt/mysql-5.0.67-bin/bin/mysqld_safe –user=mysql &

4. 创建数据库, 添加用户
# mysql -uroot -p123456 #登录数据库
建立数据库mydb:
mysql> create database mydb;
添加用户rico:
mysql> GRANT ALL PRIVILEGES ON mydb.* TO rico@localhost IDENTIFIED BY ‘123456′ WITH GRANT OPTION;
grant  all  on  数据库名.*   to   用户名@localhost  identified  by  ‘密码’;
说明:
(1)grant all PRIVILEGES 赋予所有的权限, 只增删改查, 可为SELECT,INSERT,DELETE,UPDATE
(2)mydb.* 数据库mydb中所有的表,
(3)newuser 用户名
(4)@localhost 在本地电脑上的 mysql server 服务器, @”%”为添加任何机器都能登录的用户
(5)identfified by ‘password’ 设置密码

碰到的一个错误
ERROR 1045 (28000): Access denied for user mailto:'ser=mydb'@'localhost' (using password: YES)
有三种方法解决, 参考(http://blog.csdn.net/seared2008/archive/2007/08/22/1754874.aspx)
(注意, 如果using password: NO, 可能加上-p选项, 输入密码就可以了).
我做方法1解决了这个问题. 先关闭数据库, 再不验证方式重新启动:
# mysqld_safe -umysql –skip-grant-tables –skip-networking &
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD(’newpassword’) where USER=’root’;
mysql> FLUSH PRIVILEGES;
mysql> quit
重新正常启动.

mysql常用命令
# /etc/rc.d/init.d/mysqld status  # 查看mysql server是否启动
# /etc/rc.d/init.d/mysqld start # 启动mysql server, 还有stop/restart
# mysqld_safe –user=mysql &   # 启动MySQL
# mysqladmin -uroot -p shutdown   # 关闭MySQL, 会提示输入密码; -p后可直接带密码, 无空格分隔
# mysqladmin -uroot -p password 1234 # 修改密码, 会提示输入密码; -p后可直接带密码, 无空格分隔
# mysqladmin -u root reload # 重新载入经认证的用户和口令的列表, 可以确保修改密码生效, 如果这个命令显示一个错误信息无法访问, 这可能是新的口令已经生效了. 或者可以加上选项-p.
# mysqladmin -u root -p status #查看mysql服务器当前状态
# mysql -hlocalhost -P3306 -uroot -p # 登陆本机mysql、root为用户名, -u后可以有空格, -p后有空格, 或不输入密码, 会提示输密码. 这样的好处是密码不会被history显示出来, 比较安全

mysql> create database mydb;   # 新建一个名为mydb的数据库
mysql> drop database mydb;  #删除一个名为mydb的数据库
mysql> GRANT ALL PRIVILEGES ON mydb.* TO rico@localhost IDENTIFIED BY ‘123456′ WITH GRANT OPTION;   # grant  all  on  数据库名.*   to   用户名@localhost  identified  by  ‘密码’;
# 也可这样修改密码, 两步:
mysql> UPDATE user SET Password=PASSWORD(’newpassword’) where USER=’root’;
mysql> FLUSH PRIVILEGES;
# 删除用户, 下面两步:
mysql> Delete FROM user Where User=”xxxxx” and Host=”localhost”;
mysql> flush privileges;

# mysqldump -uroot -p -all -database > /home/backup/backup.sql  # 备份全部数据库到backup.sql文件
# mysqldump -uroot -p mydb > /home/backup/backup.sql  # 备份mydb数据库到backup.sql文件
mysql> use /home/backup/backup.sql;   # 导入/home/backup/目录的backup.sql数据库
# mysql -urico -p123456 dbtest < /opt/test.sql #执行脚本

MySQL中show命令抄录如下:
a. show tables或show tables from database_name; — 显示当前数据库中所有表的名称。
b. show databases; — 显示mysql中所有数据库的名称。
c. show columns from table_name from database_name; 或show columns from database_name.table_name; — 显示表中列名称。
d. show grants for user_name; — 显示一个用户的权限,显示结果类似于grant 命令。
e. show index from table_name; — 显示表的索引。
f. show status; — 显示一些系统特定资源的信息,例如,正在运行的线程数量。
g. show variables; — 显示系统变量的名称和值。
h. show processlist; — 显示系统中正在运行的所有进程,也就是当前正在执行的查询。大多数用户可以查看他们自己的进程,但是如果他们拥有process权限,就可以查看所有人的进程,包括密码。
i. show table status; — 显示当前使用或者指定的database中的每个表的信息。信息包括表类型和表的最新更新时间。
j. show privileges; — 显示服务器所支持的不同权限。
k. show create database database_name; — 显示create database 语句是否能够创建指定的数据库。
l. show create table table_name; — 显示create database 语句是否能够创建指定的数据库。
m. show engies; — 显示安装以后可用的存储引擎和默认引擎。
n. show innodb status; — 显示innoDB存储引擎的状态。
o. show logs; — 显示BDB存储引擎的日志。
p. show warnings; — 显示最后一个执行的语句所产生的错误、警告和通知。
q. show errors; — 只显示最后一个执行语句所产生的错误。
r. show [storage] engines; –显示安装后的可用存储引擎和默认引擎。