我刚刚使用以下命令创建了一个新的 MySQL 数据目录mysql_install_db
:
$mysql_install_db --datadir=/home/user1/opt/mysqld/data/ 正在安装 MySQL 系统表... 091123 10:51:54 [警告] 仅当以 root 身份运行时才可使用 --user 开关 好的 填写帮助表... 091123 10:51:54 [警告] 仅当以 root 身份运行时才可使用 --user 开关 好的 要在启动时启动 mysqld,你必须复制 将 support-files/mysql.server 复制到适合您系统的正确位置 请记住为 MySQL 根用户设置密码! 为此,启动服务器,然后发出以下命令: /usr/bin/mysqladmin -u root 密码 '新密码' /usr/bin/mysqladmin -u root -h machine1 密码 '新密码' 请参阅手册以了解更多说明。 您可以使用以下命令启动 MySQL 守护程序: cd /usr; /usr/bin/mysqld_safe & 您可以使用 mysql-test-run.pl 测试 MySQL 守护进程 cd mysql-test; perl mysql-test-run.pl 请报告 /usr/bin/mysqlbug 脚本的任何问题! 有关 MySQL 的最新信息可在以下网址获取: http://www.mysql.com 通过在 http://shop.mysql.com 购买支持/许可证来支持 MySQL
我运行了 mysqld_safe 来启动实例,但 mysql 无法连接。我可以使用 --skip-grant 运行 mysqld,但它不允许我设置新权限。如何启动新 MySQL 实例上的权限?
$ps aux|grep mysql
root 2602 0.0 0.0 87076 1308 ? S 11月22日 0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid mysql 2662 0.0 0.2 190676 23732 ? Sl 11 月 22 日 0:22 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --socket=/var/lib/mysql/mysql.sock 用户1 18954 0.0 0.0 84984 1224 pts/4 S+ 11:36 0:00 /bin/sh /usr/bin/mysqld_safe --defaults-file=my.cnf user1 18980 0.0 0.2 190160 22860 pts/4 Sl+ 11:36 0:00 /usr/libexec/mysqld --defaults-file=my.cnf --basedir=/usr --datadir=/home/user1/opt/mysqld/data --pid-file=/home/user1/opt/mysqld/mysqld.pid --skip-external-locking --port=3307 --socket=/home/user1/opt/mysqld/mysql.sock 用户1 20148 0.0 0.0 82236 756 pts/2 S+ 12:15 0:00 grep mysql
netstat -lnp|grep mysql
tcp 0 0 0.0.0.0:3307 0.0.0.0:* 监听 18980/mysqld unix 2 [ ACC ] 流侦听 153644 18980/mysqld /home/user1/opt/mysqld/mysql.sock unix 2 [ ACC ] 流监听 8193 - /var/lib/mysql/mysql.sock
编辑:有两个 MySQL 实例。我想要一个在端口 3307 上的实例。mysqld_safe 以 user1 而非 root 身份运行,命令如下: mysqld_safe --defaults-file=my.cnf
答案1
mysql -P 3307 -u root
也应该能起到作用。
答案2
啊,它必须使用套接字文件而不是端口。
mysql --socket=/home/user1/opt/mysqld/mysql.sock -uroot
成功了。