当前位置:首页 > 开发教程 > mysql教程 >

Leakon MySQL(2)

时间:2013-04-24 22:46 来源:网络整理 作者:采集侠 收藏

人家告诉我不用装多份,只装一份二进制 rpm 版本,然后 copy 多份配置文件,再用不同的命令行参数启动即可。 /usr/sbin/mysqld --user=mysql --skip-external-locking \--port=3316 --defaults-file=/etc/my.s1.cnf

人家告诉我不用装多份,只装一份二进制 rpm 版本,然后 copy 多份配置文件,再用不同的命令行参数启动即可。

/usr/sbin/mysqld --user=mysql --skip-external-locking \ --port=3316 --defaults-file=/etc/my.s1.cnf \ --basedir=/ --datadir=/var/lib/mysql_s1/ \ --pid-file=/var/lib/mysql/s1.pid \ --socket=/var/lib/s1.sock & /usr/sbin/mysqld --user=mysql --skip-external-locking \ --port=3326 --defaults-file=/etc/my.s2.cnf \ --basedir=/ --datadir=/var/lib/mysql_s2/ \ --pid-file=/var/lib/mysql/s2.pid \ --socket=/var/lib/s2.sock &

就这么简单!

我曾经用原有的想法,编译过多份 MySQL!

笨死算了~~

顺便说下 –skip-external-locking 这个参数,由此也可引出另一种方式。

MySQL 支持 multi 方式运行多个实例,在 my.cnf 中,每个 [mysql#] 段代表一个实例,# 替换为正整数即可。

看手册的意思,好像是说多个实例可以共用相同的数据目录,还未证实。

但 –skip-external-locking 的说明是,当用 multi 方式启动多个 mysqld server ,多个 server 对同一个 table 进行读写时会锁表。如果你不会同时读写同一张表,那么可以加上这个参数启动 MySQL。

也许可以提高性能吧,回头有空了测试下~

MySQL

3 years ago

by leakon in MySQL, PHP

导致这个错误的原因:
因为安装系统时设置了hostname为localhost导致mysql在创建表的时候没有创建成功。因此mysql库中user表里没有root这个用户或者说root没有显示出来,无法查看root的状态。这时需要手动创建。然而在安全模式无法直接创建用户,错误见下。
变个方向就能创建了,先给root给予权限,然后刷新表。之后就可以创建了。
一、killall -TERM mysqld
以安全模式启动mysql
/usr/bin/mysqld_safe –skip-grant-tables &
进入mysql
/usr/bin/mysql
mysql> use mysql
Database changed
mysql> select * from user where user=’root’;
Empty set (0.00 sec)

mysql> grant all privileges on *.* to root@localhost identified by ‘linuxtone’ with GRANT OPTION;
ERROR 1290 (HY000): The MySQL server is running with the –skip-grant-tables option so it cannot execute

this statement
mysql> update user set password=password(‘linuxtone’) where user=’root’;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 0 Changed: 0 Warnings: 0

注意单双引号。

mysql> flush privileges; //注意先刷新下表
Query OK, 0 rows affected (0.00 sec)

mysql> grant all privileges on *.* to root@localhost identified by ‘linuxtone’ with GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> select * from user where user=’root’;

后期处理:
/usr/local/mysql/bin/mysqladmin shutdown -uroot -p
刚才的密码
然后正常启动:/usr/bin/mysqld_safe &
/usr/local/mysql/bin/mysql -uroot -p
能正常登录!

二Duplicate entry ‘localhost-’ for key 1 问题,很可能是你的主机名有问题,比如是localhost?
导致mysql 的root 帐号的三个主机值(分别是%、localhost、主机名)的后二者的名字弄成一样了,导使唯一键值出现重复而禁用该记录了?
朋友的主机名设置成了:localhost 遭成了Duplicate entry ‘localhost-’ for key 1

设置好正确的主机名仍后重新编译就可以了,朋友安装系统的时候没有注意主机名

MySQL RPM

用工具提高效率 解决 PhpMyAdmin 乱码

3 years ago

by leakon in Efficiency, MySQL, PHP

最近做的项目有点特殊,多人共用开发服务器,无法搭建个人独享的开发环境。

连数据库,不能使用客户端的 GUI 工具,本来我已经离不开 SQLyog 了,现在逼我用命令行,我怎么受得了?

欣慰的是,尽管 MySQL server 虽然不在开发服务器上,也没有 root 权限给我的 IP 做授权,但开发服务器的 IP 是在授权列表内的。

我又想起了 PhpMyAdmin 这个好久不用的工具。

在 Dev server 上装好,配好用户名和密码,然后即可访问 MySQL,不过又遇到新问题!


mysql教程阅读排行

最新文章