Как выйти из текущей базы данных в MySQL ?
Добрый день!
Не могу найти информацию, как выйти из текущей базы данных в MySQL (не из MySQL).
Как это можно сделать?
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Как взять имя текущей базы данных, с которой идет работа?
Привет, Релиб! Горящий вопрос. Допустим, я выполняю какие-то операции в базе ‘Mumu’. В.
Как SQL запросом получить список полей таблицы текущей базы данных?
Пробую получить поля таблицы текущей базы данных. Нашёл пример: SELECT COLUMN_NAME FROM.
Вывод текущей записи из базы данных
Уважаемые форумчане нуждаюсь в вашей помощи. Имеется бд в mdb к ней осуществляется доступ через ado.
Как привязать базы данных MySQL к Visulal C++
Здравствуйте, скажите, как привязать базы данных MySQL к Visulal C++
138 / 107 / 31
Регистрация: 03.02.2017
Сообщений: 389
Записей в блоге: 5
в какой программе? в консоли
SHOW DATABASES;
USE db2;
Регистрация: 20.02.2016
Сообщений: 1,542
alexchroot, как выйти из текущей базы ? Например,
use db2;
Как теперь выти из db2, чтобы не заходить в другую базу данных?
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Как создать копию базы данных в MYSQL?
Здравствуйте. Как создать копию базы данных и как потом её восстанавливать после удаление.
Как ускорить выборку из базы данных MySQL?
Сам запрос работает нормально, а вот функция которая записывает данные в двумерный массив тормозит.
как вывести конкретную строку из базы данных mysql?
Всем привет! Есть код, который выводит все имена из базы данных. Как сделать, чтобы выводилась.
Как сделать автоматический бэкап MySQL базы данных?
Как сделать автоматический бэкап MySQL базы данных?
Как выводить данные по условию из базы данных mysql
Из базы данных запросы выводятся в таблицу,как выводить по условию только если >0;т.е если Пример.
Выход из режима mysql>
Привет всем, купил вчера руководство администратора MySQL, читал — теперь могу сменить пароль у root, задать новую учётную запись, удалил пользователя Любой с localhost, Без_пароля, но не могу удалить пользователя Любой с Любого_хоста Без_пароля, пишит Ок, а посмотрю сидит, правда у него привлегий нет USAGE. Как удалить такого пользователя и выходить из режима «mysql>» ?
[color=»red»]Предупреждения. Название топика с содержимим вопроса имеет столько же общего, что сахар и соль. Прошу впредь давать понятный названия темам[/color]
Создание базы через ISPmanager
Панель управления ISPmanager значительно упрощает управление СУБД и базами данных. На корректно работающем VDS создание базы займет не больше 5 минут.
В левом меню ISPmanager переходим в раздел Базы данных и нажимаем Создать базу данных.
Заполняем необходимые поля: имя БД, владелец БД (должен совпадать с владельцем сайта), сервер БД, кодировка БД, после чего создаем нового пользователя БД (либо выбираем существующего) и задаем пароль. Рекомендуем создавать сложные пароли.
Подробнее о создании Базы данных можно узнать в отдельной статье.
Теперь немного о тех местах, где могут возникнуть сложности.
Раздела «Базы данных» нет в меню
Есть 2 возможных варианта решения проблемы:
1. На сервере не запущен сервер баз данных MySQL
Проверить, активен ли сервис, вы можете в разделе Мониторинг и журналы панели ISPmanager. Попробуйте запустить или перезапустить службу mariadb (в ОС CentOS и Debian) или mysql (в ОС Ubuntu) с помощью кнопок в панели.
Если не помогло, перезапустите из консоли командой systemctl restart mysql для Ubuntu/Debian или командой systemctl restart mariadb для Centos 7.
2. Проблемы с подключением к базе данных
Перейдите в раздел Серверы БД, двойным кликом откройте свойства и нажмите Сохранить, ничего не меняя. Это принудительно обновит информацию о MySQL в панели управления. После этого обновите страницу — раздел Базы данных должен появиться.
Не подходит пароль к серверу баз данных
Случается так, что пароль root от MySQL-сервера утерян и надо установить новый. Делается следующим образом:
В Debian/Ubuntu:
# systemctl stop mysql
# systemctl stop mariadb
# systemctl stop mysqld
Запускаем его без проверки таблиц прав:
# mysqld_safe --skip-grant-tables &
Заходим root’ом без пароля:
# mysql -uroot
# use mysql;
# UPDATE user SET Password=PASSWORD("new_password") WHERE User='root';
# UPDATE user SET authentication_string=PASSWORD("new_password") WHERE User='root';
Проверить версию MySQL можно с помощью команды:
# mysql –version
# mariadb –version
Продолжаем для всех версий
# FLUSH PRIVILEGES;
В Debian/Ubuntu:
# systemctl restart mysql
# systemctl restart mariadb
# systemctl restart mysqld
Авторизуемся как root с паролем new_password
# mysql -uroot -p
После вводим новый пароль.
Где искать ошибки?
MySQL — свободная реляционная система управления базами данных. Поиск проблем с сервисом лучше всего начинать с изучения логов. Для этого необходимо подключиться на сервер по SSH. Их расположение разнится в зависимости от используемой файловой системы. В конфигурационном файле my.cnf нужно искать строки log и log-error , чтобы определить, где находятся логи. Также можно воспользоваться mysql запросом:
show variables like '%log%';
Если логирование не включено, сделать это можно следующим образом. Зайти в файл:
/etc/my.cnf #Centos /etc/mysql/my.cnf #Debian /etc/mysql/mysql.conf.d/mysql.cnf #Ubuntu
Расположение конфигурационного файла может отличаться в зависимости от дистрибутива или CMS.
И в секцию [mysqld] добавить строку:
log-error=/var/log/mysql-errors.log
Выйти из файла, выполнить команды:
touch /var/log/mysql-errors.log chown mysql:mysql /var/log/mysql* chmod 640 /var/log/mysql*
Следующая команда включит просмотр созданного лога в режиме реального времени(tail –f) и оставить его в фоне(&) что бы можно было параллельно запускать другие команды:
tail –f /var/log/mysql-errors.log &
Данная команда позволяет проводить действия с БД или сайтов и одновременно смотреть на ошибки в логе. Чтобы остановить команду, нажмите Ctrl+C .
Перечень возможных проблем
Table ‘./site/content’ is marked as crashed and should be repaired
Такое сообщение может появиться в логах или на сайте. Оно означает, что таблица одной из БД «побилась» и требуется ее восстановление. Необходимо подключится на сервер по SSH, выполнить команду, которая проверит все базы данных на предмет ошибок
mysqlcheck —repair —analyze —optimize —all-databases -u –p
Если эта команда выдаёт ошибку, вставьте ключи раздельно:
mysqlcheck —repair —all-databases -u –p mysqlcheck —analyze —all-databases -u –p mysqlcheck —optimize —all-databases -u –p
- — имя пользователя базы данных или root,
- — заменить на пароль пользователя или root от MySQL (его можно посмотреть в ISPmanager — Базы данных — Серверы БД — двойной клик на сервер MySQL для просмотра пароля root (либо Базы данных — двойной клик на нужную базу данных и двойной клик на нужного пользователя).
Либо можно выполнить исправление конкретной базы данных:
mysqlcheck —repair —analyze —optimize -u -p
- — имя пользователя базы данных или root,
- — заменить на пароль пользователя или root от MySQL (его можно посмотреть в ISPmanager — Базы данных — Серверы БД — двойной клик на сервер MySQL для просмотра пароля root (либо Базы данных — двойной клик на нужную базу данных и двойной клик на нужного пользователя),
- — база данных, которой требуется исправление.
mysql_connect() [function.mysql-connect]: Access denied for user ‘user_xxx’@’localhost’ (using password: YES)
Чаще всего связана с тем, что в настройках сайта указаны не верные данные (логин и/или пароль) для подключения к базе. Вариант решения: посмотреть в админ-панели сайта данные пользователя, пароль и название базы для подключения к базе. Зайти в ISPmanager — Базы данных — кликнуть на базу, затем на пользователя и в графу Пароль поставить пароль из админ-панели.
Может быть обратная ситуация, когда в панели ISPmanager указаны верные данные, а в конфигурационных файлах указаны неверные. В таком случае нужно править конфигурационные файлы, для CMS Bitrix, например, это /bitrix/.settings.php и /bitrix/php_interface/dbconn.php .
На сайте ошибка «Не удалось подключиться к базе данных»
В зависимости от используемой CMS эта ошибка может по-разному выглядеть:
Возникла ошибка при подключении сервера баз данных MySQL Can't connect to local MySQL server Error connect to mysql Unable to connect to the database:Could not connect to .
Подключится на сервер по SSH, выполнить:
systemctl restart mysql #перезапуск MySQL для Ubuntu, Debian systemctl restart mariadb #перезапуск MySQL для Centos 7 ps axuw | grep mysql #Эта команда должна вывести список процессов MySQL. #Если ничего не вывела – значит, MySQL не запустился.
Убедится что в ISPmanager, в разделе Службы лампочка mysql или mariadb горит.
В панели ISPmanager не удается создать базу данных, ошибка «Недостаточно данных»
Это значит у вас в ISPmanager — Серверы БД не создано ни одного сервера баз данных. Для создания нажмите на Серверы БД, далее на Создать сервер. В полях введите название сервера БД (например, MySQL), придумайте имя пользователя и пароль. Также в панели ISPmanager можно установить более 1 СУБД, альтернативные СУБД будут работать в контейнерах Docker.
MySQL не запускается ни в сервисах, ни через консоль
При запуске через консоль ошибки могут быть вида:
cant connect to local mysql server throught socket /var/run/mysqld/mysql.d.sock /etc/init.d/mysql start Starting MySQL database server: mysqld . . . . . . . . . . . . . . failed! /usr/local/etc/rc.d/mysql-server restart mysql not running? (check /var/db/mysql/peroksid.ispvds.com.pid). Starting mysql.
Проверить свободное место на диске:
df –h #общая информация du –hs /* #сколько занимает конкретные папки
Если не осталось места, удалить ненужные файлы.
Частая ситуация, когда логи сайтов разрастаются и места на диске свободного не остается, MySQL не может нормально работать (справедливо и для всех остальных сервисов – apache, exim и т.д.)
Снова пробуем перезапустить MySQL:
systemctl restart mysql #перезапуск MySQL для Ubuntu и Debian systemctl restart mariadb #перезапуск MySQL для Centos 7
Если проблема не со свободным местом, в логах должны появиться записи, похожие на эти:
130929 06:16:05 mysqld_safe Starting mysqld daemon with databases from /var/db/mysql 130929 6:16:05 [Warning] '--skip-locking' is deprecated and will be removed in a future release. Please use '--skip-external-locking' instead. 130929 6:16:05 [Warning] option 'max_allowed_packet': unsigned value 5824839680 adjusted to 1073741824 Unknown suffix '-' used for variable 'sort_buffer_size' (value '--read_buffer_size=256K') 130929 6:16:05 [Warning] option 'sort_buffer_size': unsigned value 0 adjusted to 32776 130929 6:16:05 [ERROR] /usr/local/libexec/mysqld: Error while setting value '--read_buffer_size=256K' to 'sort_buffer_size' 130929 6:16:05 [ERROR] Aborting
Смотрим записи с меткой [ERROR]. В логе выше ошибка «Error while setting value ‘—read_buffer_size=256K’ to ‘sort_buffer_size’» означает, что в конфиге my.cnf неверно прописана директива ‘sort_buffer_size. Этот случай приведен только для примера. В каждом конкретном случае лог будет различаться. Ошибки могут быть самые разные. Дальнейшие действия зависят от конкретной ошибки и требуют детального разбирательства.
Решение проблем с кодировками MySQL
Чтобы решить проблему — достаточно понять логику работы. MySQL, начиная с версии 4.1, знает, что такое кодировки и как с ними работать. Если до 4.0 она работала с байтами, то теперь работает с символами.
MySQL написали шведы, поэтому кодировкой по умолчанию (сразу после установки) является latin1, а «сравнение» (последовательность букв, алфавит; влияет на сортировки) — latin1_swedish.
Итак, где кодировки указываются.
1. Кодировка конкретной базы/таблицы/столбца. Это кодировка, в которой MySQL будет хранить данные. Например, если у вас данные в cp1251, то будет большой ошибкой указывать для хранения кодировку latin1. В ней нет соответствий для русских символов, все они будут заменены на вопросы.
Кодировку хранения можно задать, например, так.В терминале открываем MySQL с помощью команды mysql или mysql -u имя_пользователя -p , вводим пароль, после чего пишем в консоли MySQL:
create database `имя базы` default charset cp1251;
Если кодировка не указана — будет использовано значение параметра default-character-set из файла /etc/my.cnf (либо latin1, если параметра нет). Кстати, именно этот параметр редактирует ISPmanager в свойствах сервера баз данных.
2. Кодировка соединения. Это кодировка, в которой клиент (скрипт пользователя, форум, mysql-клиент и т.д.) общается с MySQL. Когда клиент подсоединяется к серверу, тот ему сообщает значение параметра default-character-set . Таким образом они договариваются о том, в какой кодировке будут общаться. Кодировку общения можно изменить запросом (его лучше выполнять сразу после соединения с сервером):
set names cp1251
где вместо cp1251 вы можете указать нужную кодировку.
Кстати, множество современных правильных скриптов именно это и делают.
Одна сложность: есть ряд кривых клиентов, которые всего этого не понимают и общаются в какой-то своей кодировке. Персонально для них можно написать в /etc/my.cnf , секцию [mysqld] :
[mysqld] set init_connect="set names utf8"
где вместо utf8 вы можете указать нужную кодировку.
Что это означает? Сразу после подсоединения любого клиента, MySQL выполнит запрос set names utf8 , как будто смену кодировки общения запросил сам клиент.
Это всё, что нужно знать для решения любой проблемы с кодировками в MySQL. Осталось несколько уточнений (самое интересное):
phpMyAdmin, mysqldump — обычные клиенты, на них действуют те же самые правила. Одно «но»: на все PHP-скрипты (включая phpMyAdmin) действует default-character-set из секции [client] в my.cnf . Для mysqldump есть отдельная секция [mysqldump] . Часто бывает так, что команда mysqldump «не видит» секцию [mysqldump] , поэтому в случаях, когда необходимо делать дамп БД в определенной кодировке, лучше использовать mysqldump с параметром —default-character-set=utf8 (вместо utf8 укажите нужную кодировку). ISPmanager прописывает default-character-set во все секции.
Дамп базы — это обычный набор MySQL-команд. Если вы в самое его начало напишете set names cp1251; , то эта команда тоже выполнится, и MySQL будет считать, что дальше все данные в дампе идут в кодировке cp1251.
Кодировки в MySQL-командах пишутся без кавычек и без «-» (дефисов). Популярные в России кодировки: utf8, cp866 (DOS), cp1251 (windows-1251), koi8r, utf8mb4.
И, наконец, пара советов:
- Если вы в этом новичок, постарайтесь свести всё к одной кодировке. Пусть у вас дамп и default-character-set (напомню, влияет на кодировку хранилища при создании таблиц и на кодировку общения с клиентом) будет в одной кодировке. Это избавит от путаницы и решит 90% проблем.
- Если есть возможность — используйте консольную утилиту mysqldump. phpMyAdmin — это дополнительная прослойка, которая лишь добавляет свою путаницу и свои баги.
Русификация MySQL
Чтобы русифицировать базу данных MySQL, не вдаваясь в подробности почему и как, проделайте следующие процедуры:
1. В конфигурационном файле /etc/my.cnf добавьте следующие строчки:
Под разделом [client]:
default-character-set=cp1251
Под разделом [mysqld]:
character-set-server=cp1251 collation-server=cp1251_general_ci init-connect = "set names cp1251"
2. После этого перезапустите базу MySQL или весь ваш виртуальный сервер (из ISPmanager или консоли).
Работаем с MySQL через командную строку
Если на экране появляется приветствие mysql, то всё прошло ok.
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 344 Server version: 5.5.28-0ubuntu0.12.04.3 (Ubuntu) Copyright (c) 2000, 2012, 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 можно написать exit, в linux достаточно нажать ctrl+C. Теперь можно писать любые mysql-запросы. Чтобы запрос выполнился, в конце обязательно нужно поставит точку с запятой «;». При написании длинных запросов удобно делать enter`ом переход на следующую строку. А после полного написание запроса поставить «;» и нажать «enter».
Для работы с конкретной базой данных нужно её выбрать с помощью оператора use. Показать все базы данных:
show databases;
Результатом будет что то вроде этого:
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | jeka | | linky | | mysql | | performance_schema | | phpmyadmin | | test | +--------------------+ 7 rows in set (0.00 sec)
Выбрать базу данных jeka:
mysql> use jeka Database changed
Посмотреть названия всех таблиц в конкретной базе данных (после выполнения use):
mysql> show tables;
Просмотреть структуру таблицы (имена и тип полей):
mysql> describe post_estimations; +------------+---------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+---------------------+------+-----+---------+-------+ | post_id | int(10) unsigned | YES | MUL | NULL | | | user_id | int(10) unsigned | YES | MUL | NULL | | | estimation | float(2,1) unsigned | NO | | NULL | | | date | int(10) unsigned | NO | | NULL | | +------------+---------------------+------+-----+---------+-------+ 4 rows in set (0.00 sec)
Достать информацию о юзере с >
mysql> SELECT * FROM users WHERE > Бэкап структуры таблицы, а точнее sql-запрос на её создание
show create table table_name;
Если в конце запроса поставить не ; а \G, то результат будет показан другим образом — иногда весьма удобно, если таблица имеет много полей:
select * from update__v4_errors where >
Посмотреть, какие запросы выполняются в данный момент на сервере MySQL:
show processlist;
Учтите, что будут отображены еще не выполненные (активные) запросы, поэтому show processlist; актуальная команды только для нагруженных БД, в других случаях маловероятно, что команда что то покажет.
Подробнее о том, как изменять структуру mysql-таблиц (alter table).
Что делать если вижу знаки вопросов вместо текста в MySQL?
Это проблема с кодировкой. Вероятно в my.ini файле mysql-сервера не добавлено:
[mysqld] init-connect='SET NAMES utf8'
Нужно добавить в .ini файл либо выполнить в консоли команду «SET NAMES utf8», после чего во время текущей сессии отображаться русский текст в mysql-консоли будет без проблем:
mysql> set names utf8; Query OK, 0 rows affected (0.00 sec)
Как сделать бэкап базы mysql через консоль Linux?
Сделать бэкап базы database в файл dump_name.sql
mysqldump -u [username] -p [password] [database] > [dump_name.sql]
[username] – имя пользователя который имеет доступ к базе данных.
[password] – пароль пользователя.
[database] – имя базы данных.
[dump_name.sql] – имя файла, дампа на выходе.
Развернуть базу из файла через командную строку
mysql -u [username] -p [password] [database] < [dump_to_restore.sql]
[username] – имя пользователя который имеет доступ к базе данных.
[password] – пароль пользователя.
[database] – имя базы данных.
[dump_to_restore.sql] – имя файла, из которого поднимаем базу
Сделать дамп структуры одной таблицы mysql (без данных):
mysqldump -u[user] -p[password] -h[host] [database] [table_name] --no-data > /path/dump_name.sql
Например, задампим таблицу users из базы данных mydatabase:
mysqldump -uroot mydatabase users > users.dump.sql
Развернуть mysql-dump в БД с именем database_name:
mysql -uroot database_name < users.dump.sql
Ещё одна интересная штука. Выполнять из консоли, не требуется предварительно подключаться к mysql (mysql>). Вывести список таблиц базы данных, не подключаясь непосредственно к mysql:
mysql -uroot -e 'show tables' database_name && echo done
mysql> show variables like '%incr%';
Заключение
Может показаться, что писать запросы в командной строке не удобно. Но это заблуждение. На слабых машинах phpmyadmin работает не так шустро как хотелось бы. Тем более не на всех серверах стоят морды с phpmyadmin, adminer и т.д. Linux + mysql в терминале реально повысили мою производительность.
Поисковые запросы , по которым приходили пользователи
Дата добавления: 11 лет назад
mysql
Похожий контент:
- Как обновить AI в mysql? Решено!
- Получить комментарии к полям mysql-таблицы 1 ответ
- Got a packet bigger than 'max_allowed_packet' bytes - ошибка mysql Решено!
- mysqldump: Got error: 1044: Access denied for user when using LOCK TABLES 1 ответ
- ERROR 9006: ProxySQL Error: connection is locked to hostgroup 10 but trying to reach hostgroup 11 Решено!
- MySQL - изменение полей, структуры таблицы 0 комментариев
- Доступ к mysql из-вне4 комментария
- Mysql перенос таблиц из одной базы данных в другую 0 комментариев
- MacOS сбросить root пароль для MySQL 0 комментариев
- Анализ производительности MySQL с использованием performance_schema 0 комментариев
Комментарии 2
viktor 10 лет назад
Последнее время я использую Valentina Studio для работы с MySQL. Очень хороший и бесплатный инструмент, рекомендую посмотреть. http://www.valentina-db.com/en/valentina-studio-overview
root 10 лет назад
Viktor, спасибо. Судя по скринам, штука интересная.
Правда, уж больно много зависимостей она имеет.. Как решу проблему с зависимостями, отпишусь.
eugene-PC:www eugene$ eugene$ sudo rpm -ivh ~/Загрузки/vstudio_x64_5_lin.rpm
rpm: RPM should not be used directly install RPM packages, use Alien instead!
rpm: However assuming you know what you are doing.
ошибка: Неудовлетворенные зависимости:
ld-linux-x86-64.so.2()(64bit) нужен для vstudio-5.3.0-2.x86_64
ld-linux-x86-64.so.2(GLIBC_2.3)(64bit) нужен для vstudio-5.3.0-2.x86_64
libc.so.6()(64bit) нужен для vstudio-5.3.0-2.x86_64
libc.so.6(GLIBC_2.2.5)(64bit) нужен для vstudio-5.3.0-2.x86_64
libc.so.6(GLIBC_2.3)(64bit) нужен для vstudio-5.3.0-2.x86_64
libc.so.6(GLIBC_2.3.3)(64bit) нужен для vstudio-5.3.0-2.x86_64
libc.so.6(GLIBC_2.3.4)(64bit) нужен для vstudio-5.3.0-2.x86_64
libc.so.6(GLIBC_2.4)(64bit) нужен для vstudio-5.3.0-2.x86_64
libdl.so.2()(64bit) нужен для vstudio-5.3.0-2.x86_64
libdl.so.2(GLIBC_2.2.5)(64bit) нужен для vstudio-5.3.0-2.x86_64
libgcc_s.so.1()(64bit) нужен для vstudio-5.3.0-2.x86_64
libgcc_s.so.1(GCC_3.0)(64bit) нужен для vstudio-5.3.0-2.x86_64
libgcc_s.so.1(GCC_3.4)(64bit) нужен для vstudio-5.3.0-2.x86_64
libgdk-x11-2.0.so.0()(64bit) нужен для vstudio-5.3.0-2.x86_64
libgdk_pixbuf-2.0.so.0()(64bit) нужен для vstudio-5.3.0-2.x86_64
libglib-2.0.so.0()(64bit) нужен для vstudio-5.3.0-2.x86_64