zoukankan      html  css  js  c++  java
  • Ubuntu mysql安装与使用

    Ubuntu 下安装 mysql
    运行下面的shell代码

    #安装mysql    
    sudo apt-get -y install mysql-server    
    sudo apt-get -y install mysql-client    
    sudo apt-get -y install libmysqlclient-dev  
    

    安装过程中会提示你创建root账户
    那就创建 要把root账户密码记下来 不要弄丢咯

    mysql 测试

    sudo mysqld --initialize
    2018-10-17T06:25:56.353286Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
    2018-10-17T06:25:56.354004Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting.
    2018-10-17T06:25:56.354012Z 0 [ERROR] Aborting
    
    systemctl start mysqld
    

    弹出一个messagebox 让我输入密码我不确定是输入mysql的root密码还是Ubuntu的root密码,感觉应该是要输入mysql的root密码.但是我还是决定要先试一下Ubuntu的root密码.所以输入Ubuntu的root密码
    结果输出

    Failed to start mysqld.service: Unit mysqld.service not found.
    

    启动失败,猜想是输入密码错误了.换mysql的root密码,这个root密码就是在安装mysql的时候初始创建的.

    systemctl start mysqld
    

    然后我用mysql的root密码测试居然还是不行.
    那个上面的问题应该就是输入Ubuntu的密码.至于为什么不能成功应该从错误输出找原因. 启动mysqld服务失败的原因是:

    Unit mysqld.service not found
    

    先不管 先看看别的

    如果看到有mysql 的socket处于 listen 状态则表示安装成功

    sudo netstat -tap|grep mysql
    tcp        0      0 localhost:mysql         *:*                     LISTEN      1071/mysqld
    

    通过以下命令来检查MySQL服务器是否启动:

    ps -ef | grep mysqld
    mysql     1071     1  0 10月17 ?      00:00:38 /usr/sbin/mysqld
    yourname    12237 18990  0 12:10 pts/2    00:00:00 grep --color=auto mysqld
    
    mysql -u root -p
    

    可以登录

    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 13
    Server version: 5.7.23-0ubuntu0.16.04.1 (Ubuntu)
    
    Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    mysql> 
    
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | sys                |
    +--------------------+
    4 rows in set (0.00 sec)
    
    mysql> exit;
    Bye
    

    关闭MYSQL服务

    ./mysqladmin -u root -p shutdown
    Enter password: 
    

    测试是否关闭成功

    sudo netstat -tap|grep mysql
    out put nothing
    
    ps -ef | grep mysqld
    yourname    20242 18990  0 12:15 pts/2    00:00:00 grep --color=auto mysqld
    

    看不到mysql的服务了
    然后我再把MYSQL的服务启动起来

    cd /usr/bin
    ./mysqld_safe &
    2018-10-18T04:17:34.530613Z mysqld_safe Logging to syslog.
    2018-10-18T04:17:34.540702Z mysqld_safe Logging to '/var/log/mysql/error.log'.
    ./mysqld_safe: 152: ./mysqld_safe: cannot create /var/log/mysql/error.log: Permission denied
    2018-10-18T04:17:34.548777Z mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.
    ./mysqld_safe: 152: ./mysqld_safe: cannot create /var/log/mysql/error.log: Permission denied
    

    这几乎代表着启动失败…
    看一下

    ps -ef|grep mysqld
    liuzy    26197 18990  0 12:18 pts/2    00:00:00 grep --color=auto mysqld
    

    看不到,服务没有启动起来,然后sudo加权限 测试

    sudo nohup ./mysqld_safe &
    

    没有出现什么错误,然后测下

    ps -ef|grep mysqld
    liuzy     5254 18990  0 12:26 pts/2    00:00:00 grep --color=auto mysqld
    

    跟刚才一样… 换个命令测试

     sudo netstat -tap|grep mysql
     out put nothing
    

    神马也没有输出来,尝试登录下mysql

    mysql -u root -p 
    Enter password: 
    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
    

    已经不能登录成功了…

    当前msyql服务器运行环境

    cat /etc/issue
    Ubuntu 16.04.5 LTS 
     l
    

    查看mysqld启动是的缺省选项

    mysqld --print-defaults
    mysqld would have been started with the following arguments:
    --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306 --basedir=/usr --datadir=/var/lib/mysql --tmpdir=/tmp --lc-messages-dir=/usr/share/mysql --skip-external-locking --bind-address=127.0.0.1 --key_buffer_size=16M --max_allowed_packet=16M --thread_stack=192K --thread_cache_size=8 --myisam-recover-options=BACKUP --query_cache_limit=1M --query_cache_size=16M --log_error=/var/log/mysql/error.log --expire_logs_days=10 --max_binlog_size=100M
    

    查看mysqld启动配置文件的优先级

    mysqld --verbose --help|grep -A 1 "default options"
    mysqld: Can't change dir to '/var/lib/mysql/' (Errcode: 13 - Permission denied)
    --no-defaults           Don't read default options from any option file,
                            except for login file.
    --defaults-file=#       Only read default options from the given file #.
    --defaults-extra-file=# Read this file after the global files are read.
    

    查看当前的my.cnf配置文件

    sudo mysqld &
    
    ps -ef|grep mysql
    root      9758 18990  0 12:50 pts/2    00:00:00 sudo mysqld
    liuzy    10745 18990  0 12:51 pts/2    00:00:00 grep --color=auto mysql
    
    ps -ef | grep mysqld
    root      9758 18990  0 12:50 pts/2    00:00:00 sudo mysqld
    liuzy    12677 18990  0 12:52 pts/2    00:00:00 grep --color=auto mysqld
    
    ps -ef|grep mysql|grep -v grep
    root      9758 18990  0 12:50 pts/2    00:00:00 sudo mysqld
    
    service mysql start
    need to input root password
    

    接着

    mysql -uroot -p
    Enter password: 
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 3
    Server version: 5.7.23-0ubuntu0.16.04.1 (Ubuntu)
    
    Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    mysql>
    
    ps -ef|grep mysql|grep -v grep
    yourname    20232 18990  0 13:18 pts/2    00:00:00 vim mysqld.cnf
    mysql    28771     1  0 13:23 ?        00:00:00 /usr/sbin/mysqld
    

    这就是说在Ubuntu中可以用service来启动mysql服务

    那么我尝试下用service关闭 mysql服务

    service mysql stop
    need to input root password
    
    ps -ef|grep mysql|grep -v grep
    yourname    20232 18990  0 13:18 pts/2    00:00:00 vim mysqld.cnf
    
  • 相关阅读:
    定时日志清理
    python ros 订阅robot_pose获取机器人位置
    python ros 重新设置机器人的位置
    c 宏的定义
    dos与unix系统的格式转化
    robot_pose的类型
    ROS编译时(catkin_make)找不到bullet,Could NOT find Bullet (missing: BULLET_DYNAMICS_LIBRARY
    python 压缩tar 包
    python 文件分割
    python 千位分隔符,
  • 原文地址:https://www.cnblogs.com/vercont/p/10210161.html
Copyright © 2011-2022 走看看