如何以一個一般用戶(非root)啟動MySQL server

edited 十月 2013 in 伺服器環境
如題,
手冊文件指出:
編輯mysql.server用su以用戶user_name啟動mysqld,
或者,
使用--user選項啟動mysqld

請教此二方式所涉及的指令或文字更動為何?

原始討論: http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=624

評論

  • edited 六月 2005
    不好意思,我其實懂概念,只是不清楚此二方式實地需經過的完整步驟?(剛學mysql的菜鳥)
    ...可以教一下嗎?..感激不盡#

    例如:
    方式[1]--"編輯mysql.server用su以用戶user_name啟動mysqld"
    ..怎麼編輯才能達此目的?

    ..若我新增一個專用帳戶:userA,那麼關於 mysql layout 的相關檔案有哪些 files 是我需更改權限的,怎麼改較安全?
    ..我需將其加入root群組嗎?,,還是不用(感覺上,扯到root就不放心)
    ..mysql可由非root群組者啟動嗎?(我看文件說明好像可以)

    方式[2]--"使用--user選項啟動mysqld"
    ..指令該怎麼下?
  • edited 六月 2005
    並不是不回答,是沒有人知道(至少我不知道)

    如果希望研究的透徹,不妨花點時間看看官方網站的文件與討論。
  • edited 六月 2005
    1.可由非root群組者
    答:可以..但是之前設定一定要給權限..因為我也不用root來啟動mysql

    2.此問題實在太困難一點了..期盼您能夠學習後..把方法告訴我們
  • edited 六月 2005
    t9527 寫道:
    1.可由非root群組者
    答:可以..但是之前設定一定要給權限..因為我也不用root來啟動mysql

    2.此問題實在太困難一點了..期盼您能夠學習後..把方法告訴我們
    Thanks for your reply!
    ├151┤
    1.
    若我新增一個專用帳戶:userA,那麼關於 mysql layout 的相關檔案有哪些 files 是我需更改權限的,怎麼改較安全?

    2.
    /usr/local/mysql/bin/safe_mysqld --user=用戶名
  • edited 六月 2005
    這問題是有解答。

    不過,相關要考慮的因素很多。我自己的編譯安裝備忘錄,就一大串。在不清楚您的使用環境之前,很難說清楚。

    建議還是看一下 MySQL 原始程式碼解開後 INSTALL 裡面相關的說明。幾乎所有的問題,都可以從那兒找到答案的線索。
  • edited 六月 2005
    Thanks!

    有關 MYSQL 手冊文件中指出:
    可以藉由編輯 mysql.server 用 su 以用戶: user_name(非root)來啟動 mysqld.

    請教若編輯 mysql.server 時,是否要先找出這行:
    /usr/local/mysql/bin/safe_mysqld

    然後在此行前先執行su root
    再將此行改為: /usr/local/mysql/bin/safe_mysqld --user=新作的專用帳戶(權限極低)
    然後再執行su 新作的專用帳戶

    .....如此較符合安全原則?
  • edited 六月 2005
    還有關於之前我問的: mysql可由非root群組者啟動嗎?:

    -> t9527 寫道:
    答:可以..但是之前設定一定要給權限..因為我也不用root來啟動mysql

    想請問要給什麼樣的權限?...不是越低越安全嗎?
  • edited 六月 2005
    b90220208 寫道:

    想請問要給什麼樣的權限?...不是越低越安全嗎?

    可能我誤解您的問題了..我起初以為您是要設非root帳號來管理

    mysql..但是看您好像問的不是那麼單簡的帳號管理問題
  • edited 六月 2005
    http://dev.mysql.com/doc/mysql/en/changing-mysql-user.html
    On Unix, the MySQL server mysqld can be started and run by any user. However, you should avoid running the server as the Unix root user for security reasons. In order to change mysqld to run as a normal unprivileged Unix user user_name, you must do the following:

    1.

    Stop the server if it's running (use mysqladmin shutdown).
    2.

    Change the database directories and files so that user_name has privileges to read and write files in them (you might need to do this as the Unix root user):

    shell> chown -R user_name /path/to/mysql/datadir

    If you do not do this, the server is not able to access databases or tables when it runs as user_name.

    If directories or files within the MySQL data directory are symbolic links, you'll also need to follow those links and change the directories and files they point to. chown -R might not follow symbolic links for you.
    3.

    Start the server as user user_name. If you are using MySQL 3.22 or later, another alternative is to start mysqld as the Unix root user and use the --user=user_name option. mysqld starts up, then switches to run as the Unix user user_name before accepting any connections.
    4.

    To start the server as the given user automatically at system startup time, specify the username by adding a user option to the [mysqld] group of the /etc/my.cnf option file or the my.cnf option file in the server's data directory. For example:

    [mysqld]
    user=user_name
  • edited 六月 2005
    太感謝了!! ├123┤

    最後再問一下:

    -> 假如 /path/to/mysql/datadir 中有些檔案是屬於 symbolic link 時,
    是否要改成如下步驟?

    1. chown -R user_name /path/to/mysql/datadir

    2. 對 "每一個" 連結檔 "一一" 作:
    chown -dereference user_name symbolic_link_file-1
    ...
    ...
    chown -dereference user_name symbolic_link_file-n
Sign In or Register to comment.