扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
一旦你已经安装了MySQL(从一个二进制代码或源代码分发),你需要初始化授权表,启动服务器并且保证服务器正确运行。你也可以希望安排服务器在你的系统开机和关机时自动地被启动和停止。
通常,对从源代码分发的安装,你象这样安装授权表并启动服务器:
shell> ./scripts/mysql_install_db shell> cd mysql_installation_directory shell> ./bin/safe_mysqld &
对二进制分发,这样做:
shell> cd mysql_installation_directory shell> ./bin/mysql_install_db shell> ./bin/safe_mysqld &
测试在MySQL发行的顶级目录是最容易进行的。对二进制分发,这是你的安装目录(典型地类似“/usr/local/mysql”)。对源代码分发,这是你的MySQL源代码树的主目录。
在本小节和以后的小节中,下列命令中,BINDIR
是到程序如mysqladmin
和safe_mysqld
被安装地点的路径。对二进制分发,是在分发内的“bin”目录。对源代码分发,BINDIR
可能是“/usr/local/bin”,除非在你运行configure
时指定了一个“ /usr/local”以外的安装目录。EXECDIR
是mysqld
服务器安装的地点,对二进制分发,这与BINDIR
一样。对源代码分发,EXECDIR
可能是“/usr/local/libexec”。
测试详细在下面描述:
mysqld
服务器并且建立初始MySQL授权表,包含决定用户如何被允许连接服务器的权限。这通常用mysql_install_db
脚本做: shell> scripts/mysql_install_db
典型地,mysql_install_db
仅在你第一次安装MySQL时需要运行,因此,如果你正在升级现有的安装,你可以跳过这一步。(然而,mysql_install_db
的使用相当安全,并且将不更新已经存在的任何表,因此如果你是不能肯定做什么,你总是可以运行mysql_install_db
。) mysql_install_db
在mysql
数据库里创建6个表(user
、db
、host
、tables_priv
、columns_priv
和func
),初始权限的描述在6.10 设置初始MySQL权限给出。简单地说,这些权限允许MySQL root
用户做任何事情,并且允许任何人创建立或使用一个名字以'test'
或'test_'
开始的数据库。如果你不设置权限表,当你启动服务器时,下列错误将在日志文件出现:
mysqld: Can't find file: 'host.frm'
如果你不是通过明显地执行./bin/safe_mysqld
来启动MySQL,上述错误可能也发生在MySQL二进制代码分发!你可能需要作为root
运行mysql_install_db
,然而,如果你喜欢, 如果用户能在数据库目录读并且写文件,你可以作为一个非特权(非--root
)用户运行MySQL服务器。作为一个非特权用户运行MySQL的指令在18.8 怎样作为一个一般用户运行 MySQL中给出。如果你有mysql_install_db
的问题,见4.15.1 运行mysql_install_db的问题
。因为mysql_install_db
在MySQL发行中,还有一些其他方法运行它:
mysql_install_db
前编辑它,改变被安装到授权表中的初始权限。如果你想要在有相同权限的很多机器安装MySQL,这很有用。在这种情况下,你可能应该只需要增加几个额外的INSERT
语句到mysql.user
和mysql.db
表中!
mysql_install_db
,然后使用mysql -u root mysql
作为MySQL root
用户连接授权表,发出SQL语句直接修改授权表。
mysql_install_db
以后再创建,你可能想要这样做。 关于这些选项的更多信息,见6.10 建立初始MySQL权限。
shell> cd mysql_installation_directory shell> bin/safe_mysqld &
如果你启动服务器的问题,见4.15.2 启动MySQL服务器的问题.
mysqladmin
证实服务器正在运行。下列命令提供简单的测试来检查服务器启动和连接的应答: shell> BINDIR/mysqladmin version shell> BINDIR/mysqladmin variables
从mysqladmin version
的输出根据你的平台和MySQL版本略有不同,但是应该类似如下显示:
shell> BINDIR/mysqladmin version mysqladmin Ver 6.3 Distrib 3.22.9-beta, for pc-linux-gnu on i686 TCX Datakonsult AB, by Monty Server version 3.22.9-beta Protocol version 10 Connection Localhost via UNIX socket TCP port 3306 UNIX socket /tmp/mysql.sock Uptime: 16 sec Running threads: 1 Questions: 20 Reloads: 2 Open tables: 3
为了感觉你能用BINDIR/mysqladmin
做其他事情,用--help
选项调用它。
shell> BINDIR/mysqladmin -u root shutdown
safe_mysqld
或直接调用mysqld
进行,例如: shell> BINDIR/safe_mysqld --log &
如果safe_mysqld
失败,从MySQL安装目录尝试运行它(如果你已经不在那里)。如果还不工作,见4.15.2 启动MySQL服务器的问题。
shell> BINDIR/mysqlshow +-----------+ | Databases | +-----------+ | mysql | +-----------+ shell> BINDIR/mysqlshow mysql Database: mysql +--------------+ | Tables | +--------------+ | columns_priv | | db | | func | | host | | tables_priv | | user | +--------------+ shell> BINDIR/mysql -e "select host,db,user from db" mysql +------+--------+------+ | host | db | user | +------+--------+------+ | % | test | | | % | test_% | | +------+--------+------+
在“sql-bench”目录(在MySQL安装目录下)下还有基准测试套件,你能用来比较在不同的平台上MySQL表现如何。“ sql-bench/Results”目录包含对不同的数据库和平台许多运行结果。为了运行所有的测试,执行这些命令:
shell> cd sql-bench shell> run-all-tests
如果你没有“sql-bench”目录,你可能在对二进制分发使用一个RPM(源代码分发的RPM包括基准目录)。在这种情况下,在你能使用它以前,你必须首先安装基准套件。从MySQL 3.22开始,有名为“mysql-bench-VERSION-i386.rpm”的基准RPM包,它们包含基准代码和数据。如果你有源代码分发,你也可以在“tests”子目录下运行测试。例如,运行“auto_increment.tst”,这样做:
shell> BINDIR/mysql -vvf test < ./tests/auto_increment.tst
期望的结果被显示在“ ./tests/auto_increment.res”文件中。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者